maven 项目(三)引申--spring集成hibernate+JPA事务配置(扫描注解)

来源:互联网 发布:com的域名需要备案吗 编辑:程序博客网 时间:2024/04/26 15:11

一:spring集成hibernate+JPA事务配置

<?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:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"default-lazy-init="true"><description>Spring公共配置 </description><!-- 定义受环境影响易变的变量 --><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /><property name="ignoreResourceNotFound" value="true" /><property name="locations"><list><!-- 标准配置 :加载数据库配置文件--><value>classpath*:/resources/mysql.properties</value></list></property></bean><!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 --><context:component-scan base-package="com.san" ></context:component-scan><!-- 数据源配置,使用应用内的DBCP数据库连接池 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><!-- Connection Info --><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><!-- Connection Pooling Info --><property name="initialSize" value="${dbcp.initialSize}" /><property name="maxActive" value="${dbcp.maxActive}" /><property name="maxIdle" value="${dbcp.maxIdle}" /><property name="validationQuery" value="select 1 from dual"/><property name="testOnBorrow" value="true" /><property name="defaultAutoCommit" value="false" /></bean><!-- 数据源配置,使用应用服务器的数据库连接池 --><!-- Hibernate配置 --><bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="hibernateProperties"><props><prop key="hibernate.dialect">${hibernate.dialect}</prop><prop key="hibernate.show_sql">${hibernate.show_sql}</prop><prop key="hibernate.format_sql">${hibernate.format_sql}</prop><!-- 定义缓存设置目录,可以不要 --> <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop><prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache/ehcache-hibernate-local.xml</prop></props></property><!-- 扫描JPA --><property name="packagesToScan" value="com.san.console.entity" /><property name="namingStrategy">    <bean class="com.san.console.utils.ImprovedNamingStrategy"/></property></bean><!-- 事务管理器配置,单数据源事务 --><bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><!-- 使用annotation定义事务 --><tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /></beans>

二:还是贴出来数据库配置文件吧:mysql.properties


jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/sandb?useUnicode=true&characterEncoding=UTF-8jdbc.username=rootjdbc.password=roothibernate.dialect=org.hibernate.dialect.MySQLDialect#hibernate 要不要在日志中显示SQL语句hibernate.show_sql=truehibernate.format_sql=false#数据库连接数#dbcp settings dbcp.initialSize=5dbcp.maxActive=20dbcp.maxIdle=10

1:数据库配置文件和spring配置文件分离:文件解耦;

2.jpa的好处之一:方便修改,有虚拟字段。拓展性感觉相比mybatis要差一点(仅仅代表个人观点);


贴一段JPA的代码吧,读者请自学

附:

@Entity@Table(name = "portal_topic")public class PortalTopic {@Id@GeneratedValue(strategy = GenerationType.AUTO)private Integer id;@Column(name = "TITLE")private String title;        ******}



0 0
原创粉丝点击