博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC4 + Hibernate4 整合, 使用Java配置
阅读量:5759 次
发布时间:2019-06-18

本文共 9744 字,大约阅读时间需要 32 分钟。

hot3.png

1.Maven依赖:

4.0.0
org.mylab.xbmc
LibManager
1.0-SNAPSHOT
1.7.7
1.1.2
4.11
4.1.2.RELEASE
5.1.34
2.0.1
3.2.8
1.2.2
4.3.7.Final
1.8
9.2.5.v20141112
UTF-8
UTF-8
UTF-8
LibManager
org.eclipse.jetty
jetty-maven-plugin
${jetty.version}
127.0.0.1
8080
5
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
jcl-over-slf4j
${slf4j.version}
ch.qos.logback
logback-classic
${logback.version}
org.slf4j
slf4j-api
ch.qos.logback
logback-access
${logback.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-orm
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-tx
${spring.version}
org.springframework
spring-test
${spring.version}
test
mysql
mysql-connector-java
${mysql.version}
org.apache.commons
commons-dbcp2
${dbcp.version}
org.hibernate
hibernate-core
${hibernate.version}
junit
junit
${junit.version}
test
javax.servlet
javax.servlet-api
3.1.0
provided

2.配置Serlvet容器

package org.mylab.xbmc.libmanager.config;import org.springframework.web.WebApplicationInitializer;import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;import org.springframework.web.filter.CharacterEncodingFilter;import org.springframework.web.servlet.DispatcherServlet;import javax.servlet.*;import java.util.EnumSet;/** * 配置Servlet容器, 加载Spring框架 * Created by CasparLi on 11/25/2014. */public class WebContainerInitializer implements WebApplicationInitializer {    @Override    public void onStartup(ServletContext servletContext) throws ServletException {        //1、springmvc上下文        AnnotationConfigWebApplicationContext springMvcContext = new AnnotationConfigWebApplicationContext();        springMvcContext.register(MainConfig.class);        springMvcContext.setServletContext(servletContext);        //2、DispatcherServlet        DispatcherServlet dispatcherServlet = new DispatcherServlet(springMvcContext);        ServletRegistration.Dynamic dynamic = servletContext.addServlet("dispatcherServlet", dispatcherServlet);        dynamic.setLoadOnStartup(1);        dynamic.addMapping("/");        //3、CharacterEncodingFilter        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();        characterEncodingFilter.setEncoding("UTF-8");        FilterRegistration filterRegistration = servletContext.addFilter("characterEncodingFilter", characterEncodingFilter);        filterRegistration.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "/");    }}

3.配置Spring

package org.mylab.xbmc.libmanager.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.view.JstlView;import org.springframework.web.servlet.view.UrlBasedViewResolver;/** * Spring主配置文件 * Created by CasparLi on 11/25/2014. */@Configuration@EnableWebMvc@ComponentScan("org.mylab.xbmc")@PropertySource(value = "classpath:config.properties", ignoreResourceNotFound = true)public class MainConfig {    @Bean    public UrlBasedViewResolver setupViewResolver() {        UrlBasedViewResolver resolver = new UrlBasedViewResolver();        resolver.setPrefix("/views/");        resolver.setSuffix(".jsp");        resolver.setViewClass(JstlView.class);        return resolver;    }    /**     * 配合@PropertySource 注解 处理properties文件     *     * @return PropertySourcesPlaceholderConfigurer     */    @Bean    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {        return new PropertySourcesPlaceholderConfigurer();    }}

4.配置Hibernate

package org.mylab.xbmc.libmanager.config;import org.apache.commons.dbcp2.BasicDataSource;import org.hibernate.SessionFactory;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;import org.springframework.orm.hibernate4.HibernateTransactionManager;import org.springframework.orm.hibernate4.LocalSessionFactoryBean;import org.springframework.transaction.PlatformTransactionManager;import org.springframework.transaction.annotation.EnableTransactionManagement;import javax.sql.DataSource;import java.beans.PropertyVetoException;/** * 音乐库数据源配置 * Created by CasparLi on 11/25/2014. */@Configuration@EnableTransactionManagement@PropertySource("classpath:dataSource.properties")@ComponentScan(basePackages = {"org.mylab.xbmc.libmanager"})public class MusicDataSourceConfig {    private static Logger logger = LoggerFactory.getLogger(MusicDataSourceConfig.class);    @Value("${ds.music.driver}")    String dsMusicDriver;    @Value("${ds.music.url}")    String dsMusicURL;    @Value("${ds.music.username}")    String dsMusicUsername;    @Value("${ds.music.password}")    String dsMusicPassword;    @Bean(name = "musicDataSource")    public DataSource dataSource() throws PropertyVetoException {        logger.info("DataSource driver:{} url:{} username:{} password:{}", dsMusicDriver, dsMusicURL, dsMusicUsername, dsMusicPassword);        BasicDataSource ds = new BasicDataSource();        ds.setDriverClassName(dsMusicDriver);        ds.setUrl(dsMusicURL);        ds.setUsername(dsMusicUsername);        ds.setPassword(dsMusicPassword);        ds.setDefaultAutoCommit(false);        return ds;    }    @Autowired    @Qualifier("musicDataSource")    @Bean(name = "musicSessionFactory")    public LocalSessionFactoryBean sessionFactory(DataSource dataSource) throws Exception {        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();        sessionFactory.setDataSource(dataSource);        sessionFactory.setPackagesToScan("org.mylab.xbmc.libmanager.bo.music");//        sessionFactory.setPackagesToScan(new String[]{"org.mylab.xbmc.libmanager.bo.music"});//        sessionFactory.setHibernateProperties(hibernateProperties());        return sessionFactory;    }    @Autowired    @Qualifier("musicSessionFactory")    @Bean    public PlatformTransactionManager transactionManager(SessionFactory sessionFactory) throws PropertyVetoException {        HibernateTransactionManager txManager = new HibernateTransactionManager();        txManager.setSessionFactory(sessionFactory);        return txManager;    }}

转载于:https://my.oschina.net/CasparLi/blog/349333

你可能感兴趣的文章
陌陌和请吃饭之类的应用,你要是能玩转,那就厉害了
查看>>
递归的运行机制简单理解
查看>>
汉字转阿斯克马值
查看>>
Java 栈与堆简介
查看>>
【supervisord】部署单进程服务的利器
查看>>
zabbix oracle监控插件orabbix部署安装
查看>>
python3 通过qq 服务器 发送邮件
查看>>
java 多线程踩过的坑
查看>>
部署Replica Sets及查看相关配置
查看>>
倒序显示数组(从右往左)
查看>>
文献综述二:UML技术在行业资源平台系统建模中的应用
查看>>
阿里云服务器 linux下载 jdk
查看>>
Swift 学习 用 swift 调用 oc
查看>>
第三章 Python 的容器: 列表、元组、字典与集合
查看>>
微信小程序开发 -- 点击右上角实现转发功能
查看>>
与MS Project相关的两个项目
查看>>
[转载]ASP.NET MVC Music Store教程(1):概述和新项目
查看>>
js函数大全
查看>>
iOS app exception的解决方案
查看>>
Mongodb启动命令mongod参数说明
查看>>