applicationContext.xml配置

博客分類: spring
ZK+spring+hibernate+log4j的web.xml配置:
Xml代碼  收藏代碼
  1.     <context-param>  
  2.         <param-name>webAppRootKey</param-name>  
  3.         <param-value>root</param-value>  
  4.     </context-param>  
  5.   
  6. <!--Log4jConfigListener要在ContextLoaderListener前 -->  
  7.     <listener>  
  8.         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
  9.     </listener>  
  10.     <listener>  
  11.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  12.     </listener>  
  13.   
  14.     <listener>  
  15.         <description>Used to clean up when a session is destroyed</description>  
  16.         <display-name>ZK Session Cleaner</display-name>  
  17.         <listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class>  
  18.     </listener>  
  19.   
  20.     <filter>  
  21.         <filter-name>loginFilter</filter-name>  
  22.         <filter-class>com.mypro.LoginFilter</filter-class>  
  23.     </filter>  
  24.     <filter-mapping>  
  25.         <filter-name>loginFilter</filter-name>  
  26.         <url-pattern>*.zul</url-pattern>  
  27.     </filter-mapping>  
  28.   
  29.     <servlet>  
  30.         <description>ZK loader for ZUML pages</description>  
  31.         <servlet-name>zkLoader</servlet-name>  
  32.         <servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>  
  33.         <init-param>  
  34.             <param-name>update-uri</param-name>  
  35.             <param-value>/zkau</param-value>  
  36.         </init-param>  
  37.         <load-on-startup>1</load-on-startup>  
  38.     </servlet>  
  39.   
  40.     <servlet-mapping>  
  41.         <servlet-name>zkLoader</servlet-name>  
  42.         <url-pattern>*.zul</url-pattern>  
  43.     </servlet-mapping>  
  44.   
  45.     <servlet>  
  46.         <description>The asynchronous update engine for ZK</description>  
  47.         <servlet-name>auEngine</servlet-name>  
  48.         <servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>  
  49.     </servlet>  
  50.   
  51.     <servlet-mapping>  
  52.         <servlet-name>auEngine</servlet-name>  
  53.         <url-pattern>/zkau/*</url-pattern>  
  54.     </servlet-mapping>  
  55.   
  56.     <error-page>  
  57.         <exception-type>java.lang.Throwable</exception-type>  
  58.         <location>/error.zul</location>  
  59.     </error-page>  
  60.   
  61.     <error-page>  
  62.         <error-code>404</error-code>  
  63.         <location>/404.zul</location>  
  64.     </error-page>  
  65.   
  66.     <!-- MIME mapping -->  
  67.         ……  

如果在web.xml中未指明spring的配置配置文件名,默認在WEB-INF目錄下查找applicationContext.xml。下面包含property、spring、hibernate、cxf的配置:
Xml代碼  收藏代碼
  1. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"  
  3.        xmlns:tx="http://www.springframework.org/schema/tx"  
  4.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
  5.             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
  6.             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
  7.             http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  
  8.   
  9. <!--IoC自動掃描帶@Controller、@Service、@Repository、@Resource、@Transactional等註釋的類-->  
  10.     <context:component-scan base-package="com.pro.control,com.pro.service.impl,com.pro.dao.hibernate.impl" />  
  11.   
  12. <!--配置屬性文件的存放地址-->  
  13.     <context:property-placeholder location="WEB-INF/config.properties"/>  
  14.      
  15.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">   
  16.         <property name="driverClassName" value="${jdbc.driverClassName}"/>  
  17.         <property name="url" value="${jdbc.url}"/>   
  18.         <property name="username" value="${jdbc.username}"/>   
  19.         <property name="password" value="${jdbc.password}"/>   
  20.     </bean>   
  21.           
  22.     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" destroy-method="close">  
  23.         <property name="dataSource" ref="dataSource" />  
  24.         <property name="hibernateProperties">  
  25.             <props>  
  26.                 <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>  
  27.                 <prop key="hibernate.current_session_context_class">thread</prop>  
  28.                 <prop key="hibernate.hbm2ddl.auto">none</prop>    
  29.                 <prop key="hibernate.show_sql">true</prop>    
  30.                 <prop key="hibernate.format_sql">true</prop>    
  31.                 <prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>    
  32.                 <prop key="hibernate.c3p0.validate">true</prop>  
  33.                 <prop key="hibernate.c3p0.max_size">20</prop>    
  34.                 <prop key="hibernate.c3p0.min_size">5</prop>  
  35.                 <prop key="hibernate.c3p0.timeout">120</prop>    
  36.                 <prop key="hibernate.c3p0.max_statements">100</prop>    
  37.                 <prop key="hibernate.c3p0.idle_test_period">120</prop>    
  38.                 <prop key="hibernate.c3p0.acquire_increment">2</prop>    
  39.                 <prop key="connection.useUnicode">true</prop>   
  40.                 <prop key="connection.characterEncoding">UTF-8</prop>  
  41.             </props>  
  42.         </property>  
  43. <!--自動掃描hibernate實體:帶@Entity註釋-->  
  44.         <property name="packagesToScan" value="com.pro.dao.hibernate.vo" />  
  45.     </bean>  
  46.   
  47. <!-- 事務配置 -->  
  48.     <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  49.         <property name="sessionFactory" ref="sessionFactory"></property>  
  50.     </bean>  
  51.     <tx:annotation-driven transaction-manager="transactionManager"/>  
  52.       
  53. <!-- 配置cxf服務器的訪問地址:http://192.168.1.120:8000/ -->  
  54.     <bean id="endpoint" class="com.pro.CxfInterface"  
  55.         factory-bean="clientFactory" factory-method="create" />  
  56.           
  57.     <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">  
  58.         <property name="serviceClass" value="com.pro.CxfInterface" />  
  59.         <property name="address" value="http://192.168.1.120:8000/" />  
  60.     </bean>  
  61.       
  62. </beans>  

Ioc控制的Bean默認是單例,如果要設置非單例在類前註明如下:
Java代碼  收藏代碼
  1. @Controller("employmentCtrl")  
  2. @Scope("prototype")  
  3. public class EmploymentCtrl{  
  4. @Resource  
  5. private EmploymentService employService;  
  6. ......  
  7. }  

業務類:
Java代碼  收藏代碼
  1. @Service("employService")  
  2. public class EmploymentServiceImpl implements EmploymentService {  
  3.       
  4. @Resource  
  5. private EmploymentDao employDao;  
  6.       
  7. @Override  
  8. @Transactional(isolation = Isolation.READ_COMMITTED, rollbackFor = Exception.class, timeout = 30)  
  9. public void addOrEditEmployment{......}  

hibernate實體類例子如下(oracle爲例,也可設置爲native方便移植,屬性與表的字段一致即可):
Java代碼  收藏代碼
  1. @Entity  
  2. @Table(name = "employment")  
  3. public class Employment implements Serializable {  
  4.   
  5.     private static final long serialVersionUID = 6678401113364404864L;  
  6.       
  7.     @Id  
  8.     @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "emp_seq")  
  9.     @SequenceGenerator(name = "emp_seq", sequenceName = "seq_emp", allocationSize = 1)  
  10.     private long id;  
  11.         ......  

log4j有兩種文件配置方式:log4j.xml和.property配置文件,默認放置在WEB-INF/下面,以log4j.xml爲例配置如下:
Xml代碼  收藏代碼
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">  
  3.   
  4. <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">  
  5.   
  6.     <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">  
  7.         <layout class="org.apache.log4j.PatternLayout">  
  8.             <param name="ConversionPattern" value="[%p] %d [%c.%M()] - %m%n"/>  
  9.         </layout>  
  10.     </appender>  
  11.       
  12.     <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">  
  13.         <param name="File" value="${root}logs/log.log" />  
  14.         <param name="Threshold" value="DEBUG" />  
  15.         <param name="Append" value="true" />  
  16.         <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />  
  17.         <layout class="org.apache.log4j.PatternLayout">  
  18.             <param name="ConversionPattern" value="[%p] %d [%c.%M] - %m%n"/>  
  19.         </layout>  
  20.     </appender>  
  21.   
  22.     <logger name="org.apache">  
  23.         <level value="WARN"/>  
  24.     </logger>  
  25.   
  26.     <logger name="org.springframework">  
  27.         <level value="WARN"></level>  
  28.     </logger>  
  29.       
  30.     <logger name="java.sql">  
  31.         <level value="INFO"/>  
  32.     </logger>  
  33.       
  34.     <logger name="com.mypro">  
  35.         <level value="DEBUG"/>  
  36.     </logger>  
  37.   
  38.     <root>  
  39.         <level value="WARN"/>  
  40.         <appender-ref ref="CONSOLE"/>  
  41.         <appender-ref ref="FILE"/>  
  42.     </root>  
  43.   
  44. </log4j:configuration>  

log4j的日誌格式(Layout)說明如下:
Xml代碼  收藏代碼
  1. 符號         描述  
  2. ----------------------------------------  
  3. %d       當前時間  
  4. %r           自程序開始後消耗的毫秒數  
  5. %t           表示日誌記錄請求生成的線程  
  6. %p           表示日誌語句的優先級  
  7. %r           與日誌請求相關的類別名稱  
  8. %c           日誌信息所在的類名  
  9. %M       日誌信息所在類的方法  
  10. %L       日誌信息所在方法的行數  
  11. %m%n         表示日誌信息的內容  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章