spring 框架配置类
来源:互联网 发布:儋州市政务网通知公布 编辑:程序博客网 时间:2024/05/21 22:27
package com.tz.erp;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.log4j.Logger;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.*;
import org.springframework.core.env.Environment;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
import java.util.Properties;
/**
* spring框架配置类,等价于applicationContext.xml
*/
//表示该类是一个配置类
@Configuration
//配置注解扫描包,默认扫描当前类所在的包以及其子包,也可以自定义设置
@ComponentScan(basePackages={"com.tz.erp.dao","com.tz.erp.service","com.tz.erp.advice","com.tz.erp.interceptor"})
//导入外部配置文件
@PropertySource("classpath:dbconfig.properties")
//开启AOP
@EnableAspectJAutoProxy
//开启声明式事务
@EnableTransactionManagement
public class AppConfig {
private static final Logger LOGGER = Logger.getLogger(AppConfig.class);
@Autowired
Environment env;
/**
* 配置数据源实现类
*/
@Bean
public DataSource getDataSource() throws PropertyVetoException {//获取数据源
LOGGER.debug("getDataSource() run...");
/*//实例化BasicDataSource实例
BasicDataSource basicDataSource = new BasicDataSource();
// 设置各种参数
basicDataSource.setDriverClassName(env.getProperty("driverClass"));
basicDataSource.setUrl(env.getProperty("url"));
basicDataSource.setUsername(env.getProperty("user"));
basicDataSource.setPassword(env.getProperty("password"));
basicDataSource.setInitialSize(Integer.parseInt(env.getProperty("initialSize")));
return basicDataSource;*/
//实例化c3p0
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
comboPooledDataSource.setDriverClass(env.getProperty("driverClass"));
comboPooledDataSource.setJdbcUrl(env.getProperty("url"));
comboPooledDataSource.setUser(env.getProperty("user"));
comboPooledDataSource.setPassword(env.getProperty("password"));
return comboPooledDataSource;
}
/**
* SessionFactory的封装类(FactoryBean)
* 当被使用时,对外所暴露的是 org.hibernate.SessionFactory
*/
@Bean
public LocalSessionFactoryBean getLocalSessionFactoryBean() throws PropertyVetoException {
LOGGER.debug("getLocalSessionFactoryBean() run...");
//实例化
LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean();
//设置数据源
localSessionFactoryBean.setDataSource(getDataSource());
//设置hibernate其他属性
Properties prop = new Properties();
prop.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
prop.setProperty("hibernate.cache.use_second_level_cache", "true");
prop.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.EhCacheRegionFactory");
prop.setProperty("hibernate.cache.use_query_cache", "true");
prop.setProperty("hibernate.hbm2ddl.auto", "update");
prop.setProperty("hibernate.show_sql", "true");
prop.setProperty("hibernate.format_sql", "true");
prop.setProperty("hibernate.jdbc.batch_size", "50");
//把设置好的属性配置绑定到当前localSessionFactoryBean中
localSessionFactoryBean.setHibernateProperties(prop);
//设置扫描实体注解包
localSessionFactoryBean.setPackagesToScan("com.tz.erp.entity");
return localSessionFactoryBean;
}
@Bean
public HibernateTransactionManager getHibernateTransactionManager(SessionFactory sessionFactory) {
LOGGER.debug("getHibernateTransactionManager() run...");
HibernateTransactionManager hibernateTransactionManager = new HibernateTransactionManager(sessionFactory);
return hibernateTransactionManager;
}
}
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.log4j.Logger;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.*;
import org.springframework.core.env.Environment;
import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.orm.hibernate4.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
import java.util.Properties;
/**
* spring框架配置类,等价于applicationContext.xml
*/
//表示该类是一个配置类
@Configuration
//配置注解扫描包,默认扫描当前类所在的包以及其子包,也可以自定义设置
@ComponentScan(basePackages={"com.tz.erp.dao","com.tz.erp.service","com.tz.erp.advice","com.tz.erp.interceptor"})
//导入外部配置文件
@PropertySource("classpath:dbconfig.properties")
//开启AOP
@EnableAspectJAutoProxy
//开启声明式事务
@EnableTransactionManagement
public class AppConfig {
private static final Logger LOGGER = Logger.getLogger(AppConfig.class);
@Autowired
Environment env;
/**
* 配置数据源实现类
*/
@Bean
public DataSource getDataSource() throws PropertyVetoException {//获取数据源
LOGGER.debug("getDataSource() run...");
/*//实例化BasicDataSource实例
BasicDataSource basicDataSource = new BasicDataSource();
// 设置各种参数
basicDataSource.setDriverClassName(env.getProperty("driverClass"));
basicDataSource.setUrl(env.getProperty("url"));
basicDataSource.setUsername(env.getProperty("user"));
basicDataSource.setPassword(env.getProperty("password"));
basicDataSource.setInitialSize(Integer.parseInt(env.getProperty("initialSize")));
return basicDataSource;*/
//实例化c3p0
ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
comboPooledDataSource.setDriverClass(env.getProperty("driverClass"));
comboPooledDataSource.setJdbcUrl(env.getProperty("url"));
comboPooledDataSource.setUser(env.getProperty("user"));
comboPooledDataSource.setPassword(env.getProperty("password"));
return comboPooledDataSource;
}
/**
* SessionFactory的封装类(FactoryBean)
* 当被使用时,对外所暴露的是 org.hibernate.SessionFactory
*/
@Bean
public LocalSessionFactoryBean getLocalSessionFactoryBean() throws PropertyVetoException {
LOGGER.debug("getLocalSessionFactoryBean() run...");
//实例化
LocalSessionFactoryBean localSessionFactoryBean = new LocalSessionFactoryBean();
//设置数据源
localSessionFactoryBean.setDataSource(getDataSource());
//设置hibernate其他属性
Properties prop = new Properties();
prop.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
prop.setProperty("hibernate.cache.use_second_level_cache", "true");
prop.setProperty("hibernate.cache.region.factory_class", "org.hibernate.cache.ehcache.EhCacheRegionFactory");
prop.setProperty("hibernate.cache.use_query_cache", "true");
prop.setProperty("hibernate.hbm2ddl.auto", "update");
prop.setProperty("hibernate.show_sql", "true");
prop.setProperty("hibernate.format_sql", "true");
prop.setProperty("hibernate.jdbc.batch_size", "50");
//把设置好的属性配置绑定到当前localSessionFactoryBean中
localSessionFactoryBean.setHibernateProperties(prop);
//设置扫描实体注解包
localSessionFactoryBean.setPackagesToScan("com.tz.erp.entity");
return localSessionFactoryBean;
}
@Bean
public HibernateTransactionManager getHibernateTransactionManager(SessionFactory sessionFactory) {
LOGGER.debug("getHibernateTransactionManager() run...");
HibernateTransactionManager hibernateTransactionManager = new HibernateTransactionManager(sessionFactory);
return hibernateTransactionManager;
}
}
阅读全文
0 0
- spring 框架配置类
- spring框架如何配置
- Spring框架的配置
- Spring框架的配置
- Spring.net + Nhibernate 框架 配置
- SSH框架Spring注入配置
- Spring框架中配置数据库
- Shiro配置---基于spring框架
- Spring配置Hibernate框架事务
- 配置spring和sprinMVC框架
- spring框架之自动配置
- spring-mvc框架配置详解
- Spring框架简介和初次框架配置
- Spring MVC+Spring+hibernate框架配置整合
- spring框架--spring整合postgre数据源配置
- 如何用Junit4测试Spring框架下配置的类
- Spring MVC框架的高级配置
- Spring MVC框架的高级配置
- Spring结合嵌入式ActiveMQ使用消息队列
- Eclipse下修改java文件默认编译路径
- 转载:Introducing the Software Testing Cupcake (Anti-Pattern)
- URI和URL的区别
- babel-polyfill让你放心用es6做开发
- spring 框架配置类
- Java中集合与数组互转总结
- JSONP跨域,CORS跨域,Hybrid APP跨域
- css类选择器使用
- 电商笔记-08(Reids展示品牌名称与价格排序简单算法.PS:特绕)
- 【安全牛学习笔记】ACUNETIX WEB VULNERABILITY SCANNER
- 文章标题
- Xcode使用系统工具自动增加version number
- 解决 div或者a标签的高度比里面的img高度多了5px 问题