您的位置:首页 > 编程语言 > Java开发

spring2.5 及 hibernate annotation 配置文件笔记

2009-05-09 18:17 489 查看
1. web.xml 配置

Xml代码

<context-param>
<param-name>contextConfigLocation</param-name>

<param-value>
/WEB-INF/applicationContext.xml
<!--classpath*:/spring-config/applicationContext.xml-->
</param-value>
</context-param>
<!-- hibernate open session in view -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>

<!-- 编码 -->
<filter>
<filter-name>encodingFilter</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>
<!-- hibernate open session in view -->
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*<url-pattern>
</filter-mapping>
<!-- 编码 -->
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp<url-pattern>
</filter-mapping>

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>

<!-- 要负责处理由  JavaBeans Introspector的使用而引起的缓冲泄露 -->
<listener>
<listener-class>
org.springframework.web.util.IntrospectorCleanupListener
</listener-class>
</listener>

2.applicationContext.xml 配置

对于dataSource就省略了 可以使用c3p0连接池

Xml代码

<beanid="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<propertyname="dataSource"ref="dataSource"/>
<propertyname="annotatedClasses"ref="annotatedClasses"/>
<propertyname="hibernateProperties"ref="hibernateProperties"/>
</bean>

<beanname="hibernateProperties"class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<propertyname="properties">
<props>
<propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<propkey="hibernate.show_sql">true</prop>
<propkey="hibernate.hbm2ddl.auto">none</prop>
<propkey="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<propkey="hibernate.cache.use_query_cache">true</prop>
<propkey="hibernate.default_batch_fetch_size">30</prop>
</props>
</property>
</bean>

<!-- annotation table 类 -->
<beanid="annotatedClasses"class="org.springframework.beans.factory.config.ListFactoryBean">
<propertyname="sourceList">
<list>
<value>com.bask.model.Promotion</value>
<value>com.bask.model.PromotionGroup</value>
<value>com.bask.model.Largess</value>
</list>
</property>
</bean>

<!-- 事务 begin -->
<beanid="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<propertyname="sessionFactory"ref="sessionFactory"/>
</bean>

<!-- 支持 @Transactional -->
<tx:annotation-driven/>

<!-- 支持 @AspectJ -->
<aop:aspectj-autoproxy/>

<!-- 以AspectJ方式定义AOP -->
<aop:configproxy-target-class="true">
<aop:advisorpointcut="execution(* com.bask.service.*Manager.*(..))"advice-ref="txAdvice"/>
</aop:config>

<tx:adviceid="txAdvice"transaction-manager="transactionManager">
<tx:attributes>
<!-- 以get 、 find 开头的方法是只读事务 -->
<tx:methodname="get*"read-only="true"/>
<tx:methodname="find*"read-only="true"/>
<!-- 其他方法是默认 -->
<tx:methodname="save*"/>
</tx:attributes>
</tx:advice>
<!-- 事务 end -->

<context:annotation-config/>
<!-- service下是spring使用注解 -->
<context:component-scanbase-package="com.bask.service"/>


3.说明

在这里我们将会根据class生产数据库表

Xml代码

<propkey="hibernate.hbm2ddl.auto">none</prop>
<!-- auto 可以有create update and none 等-->
<prop key="hibernate.hbm2ddl.auto">none</prop><!-- auto 可以有create update and none 等-->


对于hibernate annotation的笔记在这里

接下来将的笔记是spring annotation使用

http://bask.javaeye.com/blog/213359
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: