SSM配置文件
1.web.xml:
spring 監(jiān)聽器
spring配置文件路徑
字符集編碼過濾器
springmvc中的前端控制器和springmvc的配置文件路徑
400 400 404錯誤碼的訪問路徑
開發(fā)訪問的首頁面
2.applicationContext.xml
注解驅動
包掃描
加載jdbc.properties文件
根據(jù)jdbc.properties配置數(shù)據(jù)源
配置sqlSessionFactory工廠
(1).指定數(shù)據(jù)源 dataSource
(2).指定mybatis-config.xml的配置文件 configLocation
(3).指定mapper.xml的包地址 mapperLocations
配置mapper的包掃描:把mapper接口掃描到容器中。 basePackage
配置事務管理器
指定數(shù)據(jù)源
配置事務通知和傳播行為
配置切面
3.springmvc.xml
掃描controller
注解驅動:配置處理器映射器和適配器
<mvc:annotation-driven/>
指定視圖解析器
ViewResolver
4.mybatis-config.xml
可以指定駝峰命名法
5.jdbc.properties
6.log4j.properties
-
web.xml
web.xml是ssm項目當中最重要的一個配置文件,當服務啟動時會首先加載web.xml這個文件,里面包括了對前端控制器、亂碼等的配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!--全局范圍內參數(shù)初始化--> <context-param> <param-name>contextConfigLocation</param-name> <!--參數(shù)名稱--> <param-value>classpath:applicationContext.xml</param-value> <!--參數(shù)取值--> </context-param> <!--spring的監(jiān)聽器 ContextLoaderListener繼承ContextLoader類實現(xiàn)ServletContextListener接口 ContextLoaderListener的作用就是啟動Web容器時,自動裝配ApplicationContext的配置信息。 因為它實現(xiàn)了ServletContextListener這個接口,在web.xml配置這個監(jiān)聽器,啟動容器時,就會默認執(zhí)行它實現(xiàn)的方法。 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!--springMVC的配置--> <!--前端控制器--> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!-- 此處不配置 默認找 /WEB-INF/[servlet-name]-servlet.xml --> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- 1:*.do *.action 攔截以.do結尾的請求 (不攔截 jsp png jpg .js .css) 2:/ 攔截所有請求 (不攔截.jsp) 建議使用此種 方式 (攔截 .js.css .png) (放行靜態(tài)資源) 3:/* 攔截所有請求(包括.jsp) 此種方式 不建議使用 --> <url-pattern>*.do</url-pattern> </servlet-mapping> <!--<servlet> <servlet-name>imageServlet</servlet-name> <servlet-class>com.utils.PageAutocode</servlet-class> </servlet> <servlet-mapping> <servlet-name>imageServlet</servlet-name> <url-pattern>/servlet/imageServlet</url-pattern> </servlet-mapping>--> <!--如果某個會話在一定時間內未被訪問,則服務器可以扔掉來節(jié)約內存 單位為分鐘--> <session-config> <session-timeout>60</session-timeout> </session-config> <servlet> <servlet-name>services</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>services</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <!-- 靜態(tài)資源文件的引入 --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.png</url-pattern> </servlet-mapping> <!--過濾器--> <filter> <description>字符集過濾器</description> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <description>字符集編碼</description> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--直接輸入項目名進入時返回的頁面--> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>-
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <!--自動掃描,將標注spring注解的類自動轉化bean (1)< context:annotation-config />:僅能夠在已經在已經注冊過的bean上面起作用。對于沒有在spring容器中注冊的bean,它并不能執(zhí)行任何操作。 (2)< context:component-scan base-package="XX.XX"/> :除了具有上面的功能之外,還具有自動將帶有@component,@service,@Repository等注解的對象注冊到spring容器中的功能 --> <!--開啟注解模式--> <context:annotation-config /> <!--自動掃描service--> <context:component-scan base-package="com.lnp.service" /> <!-- 數(shù)據(jù)庫連接池 --> <!-- 加載配置文件 --> <context:property-placeholder location="classpath:properties/jdbc.properties"/> <!-- 數(shù)據(jù)庫連接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="driverClassName" value="${jdbc.driver}"/> <property name="maxActive" value="10"/> <property name="minIdle" value="5"/> </bean> <!-- 讓spring管理sqlsessionfactory 使用mybatis和spring整合包中的 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 數(shù)據(jù)庫連接池 --> <property name="dataSource" ref="dataSource"/> <!-- 加載mybatis的全局配置文件 --> <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/> </bean> <!--配置mapper掃描包--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.lnp.mapper"/> </bean> <!--==========================以上內容為applicationContext-dao配置===================================--> <!-- 事務管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!-- 數(shù)據(jù)源 --> <property name="dataSource" ref="dataSource"/> </bean> <!-- 通知 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <!-- 傳播行為 --> <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:attributes> </tx:advice> <!-- 切面 --> <aop:config> <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.lnp.service.*.*(..))" /> </aop:config> <!--==========================以上內容為applicationContext-service配置============================--> </beans> </beans>-
springmvc.xml
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <!--這里讓掃描controller,指定controller的包--> <context:component-scan base-package="com.lnp.controller"/> <!-- 注解的映射器 --> <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> --> <!-- 注解的適配器 --> <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> --> <!-- 使用 mvc:annotation-driven可以代替上面注解映射器和注解適配器配置 mvc:annotation-driven默認加載了很多的參數(shù)綁定方法,比如json轉換解析器就默認加載了 實際開發(fā)中使用mvc:annotation-driven --> <!-- 注解驅動:配置處理器映射器和適配器 --> <mvc:annotation-driven/> <!-- 視圖解析器 解析jsp解析,默認使用jstl標簽,classpath下得有jstl的包 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 配置jsp路徑的前綴 --> <property name="prefix" value="/WEB-INF/jsp"/> <!-- 配置jsp路徑的后綴 --> <property name="suffix" value=".jsp"/> </bean> <!--靜態(tài)資源映射--> <mvc:resources mapping="/css/**" location="/WEB-INF/css/"/> <mvc:resources mapping="/js/**" location="/WEB-INF/js"/> <!--<!– 轉換器 –>--> <!--<property name="converters">--> <!--<list>--> <!--<!– 日期類型轉換 –>--> <!--<bean class="com.lnp.controller.converter.CustomDateConverter"/>--> <!--</list>--> <!--</property>--> <!--</bean>--> <!--<!– 全局攔截器 –>--> <!--<mvc:interceptors>--> <!--<!– 順序執(zhí)行 –>--> <!--<mvc:interceptor>--> <!--<mvc:mapping path="/**"/>--> <!--<bean class="com.lnp.interceptor.HandlerInterceptor1"></bean>--> <!--</mvc:interceptor>--> <!--<mvc:interceptor>--> <!--<mvc:mapping path="/**"/>--> <!--<bean class="com.lnp.interceptor.HandlerInterceptor2"></bean>--> <!--</mvc:interceptor>--> <!--<mvc:interceptor>--> <!--<mvc:mapping path="/**"/>--> <!--<bean class="com.lnp.interceptor.LoginInterceptor"></bean>--> <!--</mvc:interceptor>--> <!--</mvc:interceptors>--> </beans>-
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="mapUnderscoreToCamelCase" value="true" /> </settings> </configuration>-
jdbc.properties
datasource.type=mysql datasource.autoCommitOnClose=false datasource.driverClassName=com.mysql.jdbc.Driver #datasource.url=jdbc:mysql://127.0.0.1:3306/onproject?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull #datasource.username=root #datasource.password=123456 datasource.url=jdbc:mysql://localhost:3306/onproject?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull datasource.username=root datasource.password=123456 c3p0.acquireIncrement=3 c3p0.initialPoolSize=5 c3p0.idleConnectionTestPeriod=900 c3p0.minPoolSize=10 c3p0.maxPoolSize=25 c3p0.maxStatements=150 c3p0.maxIdleTime=1800 c3p0.autoCommitOnClose=true6.log4j.properties
log4j.rootLogger = DEBUG, INFO, STDOUT log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout log4j.appender.DEBUG.layout.ConversionPattern=[%d{MM/dd HH:mm}] %m%n log4j.appender.STDOUT.layout.ConversionPattern=[%d{MM/dd HH:mm}] %m%n log4j.logger.jdbc.sqlonly=DEBUG,STDOUT log4j.logger.jdbc.sqltiming=OFF log4j.logger.jdbc.audit=OFF log4j.logger.jdbc.resultset=OFF log4j.logger.jdbc.connection=OFF log4j.logger.org.apache.ibatis=OFF log4j.logger.org.apache.ibatis.jdbc.ScriptRunner=DEBUG log4j.logger.java.sql.Connection=OFF log4j.logger.java.sql.Statement=OFF log4j.logger.java.sql.PreparedStatement=OFF log4j.logger.com.google=ERROR log4j.logger.net.rubyeye=ERROR -
-