关于Spring+Hibernate注解式整合问题

来源:互联网 发布:知乎 360借壳江南嘉捷 编辑:程序博客网 时间:2024/06/15 06:51

1.整体项目结构


注:bean包为entity类,dao和service为接口,impl为实现类

2.maven之pom依赖:

<dependencies><!--Spring ORM --><!-- https://mvnrepository.com/artifact/org.springframework/spring-orm --><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>4.3.8.RELEASE</version></dependency><!--Spring WebMVC --><!-- https://mvnrepository.com/artifact/org.springframework/spring-web --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.8.RELEASE</version></dependency><!--Spring 切面 --><!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects --><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>4.3.8.RELEASE</version></dependency><!-- Hibernate --><!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.2.10.Final</version></dependency><!--数据库连接池 --><!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!--数据库连接驱动 --><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.39</version></dependency><!--JSTL --><!-- https://mvnrepository.com/artifact/javax.servlet/jstl --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- https://mvnrepository.com/artifact/taglibs/standard --><!--AOP代理 --><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><!--Servlet --><!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.8.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency></dependencies><build><plugins><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.6.0</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build>


3.整合之application.xml

<?xml version="1.0" encoding="UTF-8"?><!--约束文件,基于schema写的,xsd 需要什么就配置文件 --><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx.xsd          http://www.springframework.org/schema/aop         http://www.springframework.org/schema/aop/spring-aop.xsd"         default-autowire="byName" default-lazy-init="true"><!--1、引用外部的配置文件 --><context:property-placeholder location="classpath:dbconfig.properties" /><context:component-scan base-package="com.gdq.dao.impl,com.gdq.service.impl"></context:component-scan><!--2、配置数据库连接池 --><bean id="ds"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean><!--3、配置SessionFactory --><bean id="sessionFactory"class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"><!--1、配置数据库连接池 --><property name="dataSource" ref="ds"></property><!--2、配置Hibernate的信息 --><property name="hibernateProperties"><props><!--方言 --><prop key="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</prop><!--显示建表语句 --><prop key="hibernate.show_sql">true</prop><!--格式化SQL语句 --><prop key="hibernate.format_sql">true</prop><!--自动创建表 --><prop key="hibernate.hbm2ddl.auto">update</prop><!--使用getCurrentSession --><!-- <prop key="hibernate.current_session_context_class">thread</prop> --><!-- <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate5.SpringSessionContext</prop>--></props></property><!--3、配置映射文件--><!--扫描注解实体包 --><property name="packagesToScan"><list><value>com.gdq.bean</value></list></property><!--使用xml配置则使用下面代码,扫描xml文件配置  --><!-- <property name="mappingLocations" value="classpath:com/gdq/domain/*.hbm.xml*"></property> --></bean><!--4、配置事务管理器 --><bean id="txManager"class="org.springframework.orm.hibernate5.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><!--5、配置事务通知  --><tx:advice id="txAdvice" transaction-manager="txManager"></tx:advice><!--6、声明式事务的AOP --><aop:config proxy-target-class="true"><aop:pointcut expression="execution(* com.gdq.dao.impl.*.*(..))" id="pt"/><!--引入通知  --><aop:advisor advice-ref="txAdvice" pointcut-ref="pt"/></aop:config></beans>


4.web.xml

<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>


5.serviceImpl 与daoImpl具体实现





原创粉丝点击