1.在web.xml配置
<session-config>
<!--session的超时时间为2小时min-->
<session-timeout>120</session-timeout>
</session-config>
<!--加载spring的配置文件,spring框架,加载spring-*的所有文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-*.xml</param-value>
</context-param>
<!-- spring监听,加载 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 配置springmvc -->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--自定义拦截器-->
<filter>
<filter-name>myAuthenticationFilter</filter-name>
<filter-class>com.javaclimb.util.filter.MyWebFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myAuthenticationFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置404和500页面的位置 -->
<error-page>
<error-code>404</error-code>
<location>/resources/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/resources/error.jsp</location>
</error-page>
<!--配置,解决请求乱码问题-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.设置mybatis的相关配置——SqlMapConfig.xml
<configuration>
<settings>
<!-- 打印查询语句 ,输出到控制台-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!-- 别名包扫描 ,Javabean-->
<typeAliases>
<package name="com.javaclimb.entity"/>
</typeAliases>
<plugins>
<!-- 分页查询插件 -->
<!--
PageHelper.startPage(address.getPage(),address.getLimit());
List<Address> list = addressMapper.getList(address);
PageInfo<Address> info = new PageInfo<>(list);
-->
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
</configuration>
3.设置spring相关配置
-
spring-dao.xml
jdbc.properties
# DataSource
jdbc.datasource=com.alibaba.druid.pool.DruidDataSource
# Database Configurations
jdbc.class=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=utf8&useSSL=false
jdbc.username=root
jdbc.password=root
<!-- 配置 读取properties文件 jdbc.properties -->
<context:property-placeholder location="classpath:config/*.properties"/>
<!-- 配置 数据源 -->
<bean id="dataSource" class="${jdbc.datasource}">
<property name="driverClassName" value="${jdbc.class}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 配置SqlSessionFactory -->
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!-- 设置MyBatis核心配置文件 -->
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/>
<!--指定Mapper文件位置-->
<property name="mapperLocations" value="classpath:mybatis/mapper/*Mapper.xml"/>
</bean>
<!-- 配置Mapper扫描 -->
<bean id="mapperConfig" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 设置Mapper扫描包 -->
<property name="basePackage" value="com.javaclimb.mapper"/>
</bean>
2.spring-mvc.xml
<!--开启注解驱动,以使得访问路径与方法的匹配可以通过注解配置 @Autowired,调用对应的service的类的对象-->
<mvc:annotation-driven/>
<context:component-scan base-package="com.javaclimb.controller"></context:component-scan>
<!--配置资源视图解析器,对应的jsp文件做解析,只需要login,不用login.jsp-->
<bean id="InternalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!--多文件上传解析器配置-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--最大上传限制-->
<property name="maxUploadSize" value="10485760"/>
</bean>
<!--通过location,可以重新定义资源文件的位置,上传文件在upload-->
<mvc:resources location="/resources/" mapping="/resources/**"/>
<mvc:resources location="/upload/" mapping="/upload/**"/>
public void quickMethod20(String name,MultipartFile uploadFile) throws IOException { //获得文件名称 String originalFilename = uploadFile.getOriginalFilename(); //保存文件 uploadFile.transferTo(new File("C:\\upload\\"+originalFilename));
}
3.spring-service.xml
<!-- 配置@Service类的包扫描 -->
<context:component-scan base-package="com.javaclimb.service.impl"/>
4.spring-trans.xml
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 通知
name:切点方法名称
isolation:事务的隔离级别
propogation:事务的传播行为
timeout:超时时间
read-only:是否只读
-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 传播行为 ,z支持事物,只读属性-->
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="create*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="select*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="query*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 面向切面编程 -->
<aop:config>
<aop:advisor advice-ref="txAdvice"
pointcut="execution(* com.javaclimb.service.impl.*.*(..))"/>
</aop:config>
3.log4j.properties
#日志输出方式,输出的
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#控制台输出的路径
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#输出格式,时间+内容+换行
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %m%n
#输出的地址
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=accp.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %l %m%n
#输出的级别
log4j.rootLogger=info, stdout, file