ZK+spring+hibernate+log4j的web.xml配置:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>root</param-value>
</context-param>
<!--Log4jConfigListener要在ContextLoaderListener前 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<description>Used to clean up when a session is destroyed</description>
<display-name>ZK Session Cleaner</display-name>
<listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class>
</listener>
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.mypro.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>*.zul</url-pattern>
</filter-mapping>
<servlet>
<description>ZK loader for ZUML pages</description>
<servlet-name>zkLoader</servlet-name>
<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>
<init-param>
<param-name>update-uri</param-name>
<param-value>/zkau</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>zkLoader</servlet-name>
<url-pattern>*.zul</url-pattern>
</servlet-mapping>
<servlet>
<description>The asynchronous update engine for ZK</description>
<servlet-name>auEngine</servlet-name>
<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>auEngine</servlet-name>
<url-pattern>/zkau/*</url-pattern>
</servlet-mapping>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.zul</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.zul</location>
</error-page>
<!-- MIME mapping -->
……
如果在web.xml中未指明spring的配置配置文件名,默认在WEB-INF目录下查找applicationContext.xml。下面包含property、spring、hibernate、cxf的配置:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!--IoC自动扫描带@Controller、@Service、@Repository、@Resource、@Transactional等注释的类-->
<context:component-scan base-package="com.pro.control,com.pro.service.impl,com.pro.dao.hibernate.impl" />
<!--配置属性文件的存放地址-->
<context:property-placeholder location="WEB-INF/config.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" destroy-method="close">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.current_session_context_class">thread</prop>
<prop key="hibernate.hbm2ddl.auto">none</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>
<prop key="hibernate.c3p0.validate">true</prop>
<prop key="hibernate.c3p0.max_size">20</prop>
<prop key="hibernate.c3p0.min_size">5</prop>
<prop key="hibernate.c3p0.timeout">120</prop>
<prop key="hibernate.c3p0.max_statements">100</prop>
<prop key="hibernate.c3p0.idle_test_period">120</prop>
<prop key="hibernate.c3p0.acquire_increment">2</prop>
<prop key="connection.useUnicode">true</prop>
<prop key="connection.characterEncoding">UTF-8</prop>
</props>
</property>
<!--自动扫描hibernate实体:带@Entity注释-->
<property name="packagesToScan" value="com.pro.dao.hibernate.vo" />
</bean>
<!-- 事务配置 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 配置cxf服务器的访问地址:http://192.168.1.120:8000/ -->
<bean id="endpoint" class="com.pro.CxfInterface"
factory-bean="clientFactory" factory-method="create" />
<bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="com.pro.CxfInterface" />
<property name="address" value="http://192.168.1.120:8000/" />
</bean>
</beans>
Ioc控制的Bean默认是单例,如果要设置非单例在类前注明如下:
@Controller("employmentCtrl")
@Scope("prototype")
public class EmploymentCtrl{
@Resource
private EmploymentService employService;
......
}
业务类:
@Service("employService")
public class EmploymentServiceImpl implements EmploymentService {
@Resource
private EmploymentDao employDao;
@Override
@Transactional(isolation = Isolation.READ_COMMITTED, rollbackFor = Exception.class, timeout = 30)
public void addOrEditEmployment{......}
hibernate实体类例子如下(oracle为例,也可设置为native方便移植,属性与表的字段一致即可):
@Entity
@Table(name = "employment")
public class Employment implements Serializable {
private static final long serialVersionUID = 6678401113364404864L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "emp_seq")
@SequenceGenerator(name = "emp_seq", sequenceName = "seq_emp", allocationSize = 1)
private long id;
......
log4j有两种文件配置方式:log4j.xml和.property配置文件,默认放置在WEB-INF/下面,以log4j.xml为例配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p] %d [%c.%M()] - %m%n"/>
</layout>
</appender>
<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${root}logs/log.log" />
<param name="Threshold" value="DEBUG" />
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p] %d [%c.%M] - %m%n"/>
</layout>
</appender>
<logger name="org.apache">
<level value="WARN"/>
</logger>
<logger name="org.springframework">
<level value="WARN"></level>
</logger>
<logger name="java.sql">
<level value="INFO"/>
</logger>
<logger name="com.mypro">
<level value="DEBUG"/>
</logger>
<root>
<level value="WARN"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
log4j的日志格式(Layout)说明如下:
符号 描述
-------------------------------------------
%d 当前时间
%r 自程序开始后消耗的毫秒数
%t 表示日志记录请求生成的线程
%p 表示日志语句的优先级
%r 与日志请求相关的类别名称
%c 日志信息所在的类名
%M 日志信息所在类的方法
%L 日志信息所在方法的行数
%m%n 表示日志信息的内容
分享到:
相关推荐
ApplicationContext.xml 配置详解 ApplicationContext.xml 是 Spring 框架中用于配置应用程序的核心配置文件。通过该文件,可以定义 Bean、数据源、Session 工厂、 Hibernate 配置等相关信息,从而实现应用程序的...
spring+jpa的applicationContext.xml配置
ApplicationContext.xml是Spring框架中的核心配置文件,它是Spring的IOC(Inverse of Control,控制反转)容器的核心组件。该文件用于定义和配置Spring应用程序中的各种Bean,对于Spring应用程序的开发和维护起着至...
在Java Web开发中,`struts.xml`, `applicationContext.xml` 和 `web.xml` 是三个至关重要的配置文件,它们各自负责不同的职责,并协同工作来构建一个完整的应用框架。以下是关于这三个配置文件的详细说明。 首先,...
ssh框架事务管理applicationContext.xml配置文件
"Spring ApplicationContext.xml配置的12个技巧演示教学" Spring ApplicationContext.xml配置是 Spring 框架中非常重要的一部分,它提供了企业级服务,并且可以通过依赖注入来获得简单而有效的测试能力。然而,在...
1. **使用`@ImportResource`注解**:在Spring Boot的主配置类(通常标注了`@SpringBootApplication`)上添加`@ImportResource`注解,指定XML配置文件的路径。例如: ```java @SpringBootApplication @...
使用XML配置时,确保你的项目中包含了对`spring-context`的依赖,因为它包含了处理XML配置所需的组件。 总之,Spring Boot虽然推崇简化配置,但仍然支持XML配置,允许开发者在需要的时候引入。通过`@...
在Spring Boot应用中,我们通常使用YAML或properties文件来管理配置,但有时也需要与传统的XML配置文件集成,特别是当我们需要处理遗留系统或是利用Spring的一些特定功能时。本篇文章将详细探讨如何在Spring Boot...
在IT行业中,尤其是在Java Web开发领域,`applicationContext.xml`、`db.properties`、`log4j.properties`以及`spring-mvc.xml`等文件是非常关键的配置文件,它们各自负责不同的功能,对于一个完整的应用程序来说不...
在这个版本中,配置方式更加灵活,既支持XML配置,也支持注解配置,使得开发过程更加简便。 2. **XML配置文件的提示信息** 提示信息通常包括bean的描述、属性的解释等,这些信息可以在IDE中显示,帮助开发者快速...
《ApplicationContext.xml——Spring框架的核心配置文件详解》 在Java开发领域,Spring框架是不可或缺的一部分,它以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented ...
本文主要针对SSH框架中Spring部分的配置文件`applicationContext.xml`的头部文件进行深入解析。 #### 二、`applicationContext.xml`文件解析 ##### 1. 文件头部结构 在给出的部分内容中,可以看到`...
然而,在某些情况下,可能需要从传统的`applicationContext.xml`配置文件中读取配置,这可能是因为历史遗留项目、集成第三方库或者为了复用已有的XML配置。本篇文章将详细探讨如何在Spring Boot中读取不同路径下的`...
首先,`applicationContext.xml`是Spring框架的核心配置文件,它定义了Bean的定义、依赖注入关系以及服务的配置。在这个特定的场景中,`applicationContext.xml`将包含与Quartz相关的配置,如Scheduler、Job、...
在Spring Boot应用中,我们通常使用YAML或properties文件来管理配置,但有时也需要与传统的XML配置文件集成,特别是当有遗留系统或者需要利用特定XML配置功能时。本篇文章将深入探讨如何在Spring Boot中读取不同路径...
国际物流云商项目server_web子工程中的applicationContext.xml配置文件。
在Spring Boot应用中,我们通常使用YAML或Java配置来管理我们的应用程序设置,但有时我们需要兼容遗留系统或者有特殊需求,需要使用XML配置文件。本文将深入探讨如何在Spring Boot项目中读取不同路径下的`...