java相关配置整理
1、web.xml中的servlet分发器配置
<!--配置servlet分发器-->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:sping.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2、spring.xml(applicationContext.xml)中的相关配置
spring的配置
<!--配置扫描的包-->
<context:component-scan base-package="com.qf"/>
<!--让Controller注解生效-->
<mvc:annotation-driven/>
<!--配置静态资源-->
<mvc:default-servlet-handler/>
<!--配置将返回的数据自动转换成json格式-->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="objectMapper"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"/>
<!--配置将返回的数据自动转换成json格式-->
<!--视图解析器 使用这个配置还需要一个jstl包-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!--前缀 斜杠/ 表示带/的前缀都可以省略掉-->
<property name="prefix" value="/"/>
<!--页面的后缀 表示带.jsp的都可以省略-->
<property name="suffix" value=".jsp"/>
</bean>
3、mybatis的相关配置
<bean id="database" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/1909"/>
<property name="user" value="root"/>
<property name="password" value="123"/>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="database"/>
<!--配置mapper.xml文件所在路径-->
<property name="mapperLocations" value="classpath:mapper/*.mapper.xml"/>
</bean>
<!--配置扫描mapper-->
<bean id="mapperScan" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--要扫描的包-->
<property name="basePackage" value="com.qf.shiro.mapper"/>
</bean>
4、redis的相关配置
<!--配置Redis 此处可不配置(使用默认)-->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="10000"/>
</bean>
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="poolConfig" ref="jedisPoolConfig"/>
<property name="hostName" value="192.168.46.128"/>
<property name="port" value="6379"/>
<property name="password" value="123"/>
</bean>
<!--stringRedisTemplate是spring用来操作Redis的一个类-->
<bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory"/>
</bean>
5、shiro安全框架的相关配置
shiro在web.xml中的配置
<!--配置shiro-->
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
shiro在spring.xml中的配置(或者自己专门写一个放shiro配置文件的xml)
<!--shiro结合spring管理java对象生命周期的一个类-->
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>
<!--myRealm是用来访问数据库获得用户名和密码的-->
<bean id="myRealm" class="com.qf.shiro.realm.MyRealm">
<!--配置加密方式-->
<property name="credentialsMatcher" ref="hashMatcher"/>
</bean>
<!--配置加密方式-->
<bean id="hashMatcher" class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
<property name="hashAlgorithmName" value="MD5"/>
</bean>
<!--securityManager是匹配数据的类 DefaultSecurityManager是SecurityManager接口的具体实现类-->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="myRealm"/>
</bean>
<!--ShiroFilterFactoryBean是真正处理拦截的类-->
<!--这里的id要和web.xml中的委派过滤器名称一致-->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager"/>
<!--如果没有登录就跳转到denglu.jsp页面-->
<property name="loginUrl" value="/denglu.jsp"/>
<!--如果没有访问权限就跳转到unAuthorized.jsp页面-->
<property name="unauthorizedUrl" value="/unAuthorized.jsp"/>
<!--配置拦截规则-->
<property name="filterChainDefinitions">
<!--放行denglu.jsp和/shiro/login接口 其他的没有登录就拦截-->
<value>
/denglu.jsp=anon
/shiro/login=anon
/loginSuccess.jsp=anon
/shiro/addUser=authc,roles[超级管理员]
/addUser.jsp=authc,roles[超级管理员]
/**=authc
</value>
</property>
</bean>
<!--允许shiro的配置生效-->
<!-- Enable Shiro Annotations for Spring-configured beans. Only run after -->
<!-- the lifecycleBeanProcessor has run: -->
<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"/>
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
<property name="securityManager" ref="securityManager"/>
</bean>
6、导入C标签的语句
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>