加Spring工具类

master
luffy9412 7 years ago
parent 2213ddb298
commit af40f9174d
  1. 28
      core/src/main/java/org/pqh/core/config/HibernateConfig.java
  2. 16
      core/src/main/java/org/pqh/core/util/SpringUtil.java
  3. 14
      pom.xml
  4. 1
      web/src/main/resources/hibernate.properties

@ -3,17 +3,18 @@ package org.pqh.core.config;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.pqh.core.util.SpringUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.annotation.PropertySource;
import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.annotation.PostConstruct;
import java.io.IOException;
/**
* Created by reborn on 2017/7/28.
*/
@ -30,39 +31,40 @@ public class HibernateConfig{
private String username;
@Value("${hibernate.connection.password}")
private String password;
@Value("${hibernate.connection.driver_class}")
private String driver;
private LocalSessionFactoryBean sessionFactoryBean;
public BasicDataSource basicDataSource(){
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setUrl(url);
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setDriverClassName(driver);
return dataSource;
}
@Bean("sessionFactoryBean")
public LocalSessionFactoryBean sessionFactoryBean(){
LocalSessionFactoryBean sessionFactoryBean=new LocalSessionFactoryBean();
log.info("数据库配置初始化\nurl="+sessionFactoryBean.getHibernateProperties()+"\nusername="+username+"\npassword="+password);
@PostConstruct
public void init() throws IOException {
log.info("数据库配置初始化\nurl="+url+"\nusername="+username+"\npassword="+password);
sessionFactoryBean=new LocalSessionFactoryBean();
sessionFactoryBean.setDataSource(basicDataSource());
sessionFactoryBean.setPackagesToScan("org.pqh.core.model");
return sessionFactoryBean;
sessionFactoryBean.afterPropertiesSet();
}
@Bean("transactionManager")
@DependsOn("sessionFactoryBean")
public HibernateTransactionManager hibernateTransactionManager() {
HibernateTransactionManager hibernateTransactionManager=new HibernateTransactionManager();
hibernateTransactionManager.setSessionFactory(SpringUtil.getBean(LocalSessionFactoryBean.class).getObject());
hibernateTransactionManager.setSessionFactory(sessionFactoryBean.getObject());
return hibernateTransactionManager;
}
@Bean("hibernateTemplate")
@DependsOn("sessionFactoryBean")
public HibernateTemplate hibernateTemplate(){
HibernateTemplate hibernateTemplate=new HibernateTemplate();
hibernateTemplate.setSessionFactory(SpringUtil.getBean(LocalSessionFactoryBean.class).getObject());
hibernateTemplate.setSessionFactory(sessionFactoryBean.getObject());
return hibernateTemplate;
}

@ -1,27 +1,35 @@
package org.pqh.core.util;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
* Created by reborn on 2017/9/19.
*/
public class SpringUtil extends WebMvcConfigurationSupport {
@Component
@Lazy(false)
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
private Logger log= LogManager.getLogger();
public static <T>T getBean(Class<T> c){
return applicationContext.getBean(c);
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) {
super.setApplicationContext(applicationContext);
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
log.info("init applicationContext");
SpringUtil.applicationContext=applicationContext;
}

@ -17,14 +17,14 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring.version>4.3.10.RELEASE</spring.version>
<spring.version>RELEASE</spring.version>
<mysql.version>6.0.6</mysql.version>
<commons-dbcp2.version>2.1.1</commons-dbcp2.version>
<hibernate-core.version>5.2.10.Final</hibernate-core.version>
<jackson-databind.version>2.9.0</jackson-databind.version>
<aspectjweaver.version>1.8.10</aspectjweaver.version>
<log4j.version>2.8.2</log4j.version>
<commons-io.version>2.5</commons-io.version>
<commons-dbcp2.version>RELEASE</commons-dbcp2.version>
<hibernate-core.version>RELEASE</hibernate-core.version>
<jackson-databind.version>RELEASE</jackson-databind.version>
<aspectjweaver.version>RELEASE</aspectjweaver.version>
<log4j.version>RELEASE</log4j.version>
<commons-io.version>RELEASE</commons-io.version>
<junit.version>4.12</junit.version>
<servlet-api.version>3.1.0</servlet-api.version>
</properties>

@ -1,6 +1,7 @@
hibernate.connection.pool_size=5
hibernate.jdbc.fetch_size=50
hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver
hibernate.connection.username=root
hibernate.connection.password=123456
hibernate.connection.url=jdbc:mysql://localhost:3306/bilibili?serverTimezone=UTC&&useSSL=true
Loading…
Cancel
Save