基于Annotation注解整合SSH框架和基于XML文件配置Bean整合SSH框架
2017-12-06 15:46
429 查看
1.新建一个动态web工程添加jar包
2.在com.digital.entity包下创建实体类UserInfo与数据中digital数据表user_Info对应 创建映射UserInfo.hbm.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.digital.entity"> <class name="UserInfo" table="user_info" catalog="digital"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="native"></generator> </id> <property name="userName" type="java.lang.String"> <column name="userName" length="16" not-null="true" /> </property> <property name="password" type="java.lang.String"> <column name="password" length="16" not-null="true" /> </property> </class> </hibernate-mapping>使用Annotation完成UserInfo实体类与数据表的映射关系
@Entity @Table(name = "user_info", catalog = "digital") public class UserInfo {对类中的属性进行映射 -主键属性
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", unique = true, nullable = false) public int getId() {1234对非主属性
@Column(name = "userName", length = 16) public String getUserName() { return userName;使用注解类后,就不在需要UserInfo.hbx.xml映射文件删除3.Spring整合hibernate目的-由Spring的IOC容器来管理Hibernate的SessionFactory让Hibernate使用Spring的声明式事务实现:在src文件下创建Spring配置文件applicationContextxml基于xml配置数据源dataSource配置hibernate的sessionFactory实例声明hibernate事务管理器、定义事务通知、定义切面、将事务通知和切面组合起来加入c3p0数据源(实例化数据源)
<!-- 配置数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver" /> <property name="jdbcUrl" value="jdbc:mysql:///digital" /> <property name="user" value="root" /> <property name="password" value="123456" /> <property name="minPoolSize" value="5" /> <property name="maxPoolSize" value="10" /> </bean>
<!-- 配置Hibernate的sessionFactory实例 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <!-- 配置数据源属性 --> <property name="dataSource"> <ref bean="dataSource" /> </property> <!-- 配置 Hibernate的基本属性--> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property>123456789101112131415配置Hibernate的映射文件的位置名称(引用注入UserInfo.hbx.xml)
<!-- 配置 Hibernate映射文件的位置及名称--> <property name="mappingResources"> <list> <value>com/digital/entity/UserInfo.hbm.xml</value> </list> </property> </bean>定义Hibernate事务管理器Bean(为TransactionManager事务管理器属性name=“SessionFactory”引用ref= SessionFactory实例,注入事务管理器中)
<!-- 声明Hibernate事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean>123456
声明式事务管理也有两种常用的方式
基于tx和aop名字空间的xml配置文件基于@Transactional注解。显然基于注解的方式更简单易用,更清爽。开启注释处理器<!-- 开启注解处理器 --> <context:annotation-config />123基于@Transactional注解方式的事务管理
<!-- 开启Spring的Bean自动扫描机制来检查与管理Bean实例 --> <context:component-scan base-package="com.digital" />12开启自动扫描机制检查与管理Bean实例
<tx:annotation-driven transaction-manager="transactionManager" />定义UserInfoDAOImpl类的Bean并且类中的属性name=sessionFactory 注入实例ref=SessionFactory
<!-- 定义com.digital.dao.impl.UserInfoDAOImpl类--> <bean id="userInfoDAO" class="com.digital.dao.impl.UserInfoDAOImpl"> <property name="sessionFactory" ref="sessionFactory" /> </bean>使用注解@Repository(”userInfoDAO”)在Spring容器中注册一个userInfoDAO实例
@Repository("userInfoDAO") public class UserInfoDAOImpl implements UserInfoDAO {12使用注解@Autowired完成SessionFactory属性的注入
// 通过@Autowired注解注入Spring容器中的SessionFactory实例 @Autowired SessionFactory sessionFactory;定义Bean为在UserInfoServiceImpl类中的属性name=”userInfoDAO“注入ref=“userInfoDAO”实例
<!-- 定义UserInfoServiceImpl类,并为其userInfoDAO属性注入值--> <bean id="userInfoService" class="com.digital.service.impl.UserInfoServiceImpl"> <property name="userInfoDAO" ref="userInfoDAO" /> </bean>1234使用@Service注解:在Service服务层实例化UserInfoServiceImpl类放入Spring容器中
//使用@Transactional注解实现事务管理
@Transactional
//使用@Service注解在Spring容器中注册名为userInfoService的UserInfoServiceImpl实例
@Service("userInfoService") public class UserInfoServiceImpl implements UserInfoService {
//使用@Autowired注解注入UserInfoDAOImpl实例
@Autowired
UserInfoDAO userInfoDAO;
相关文章推荐
- 基于Annotation注解整合SSH框架和基于XML文件配置Bean整合SSH框架
- 简单的SSH整合(基于注解和xml文件的配置)
- 框架 day36 Spring3 入门,DI依赖注入,装配bean基于xml/注解, 整合Junit4,配置约束自动提示
- SSM简单整合(Mybatis,Spring,SpringMVC,基于注解和xml文件配置)
- spring与hibernate整合配置基于Annotation注解方式管理实务
- IOC之基于注解的配置bean(下)
- Spring-基于注解的配置[01定义Bean+扫描Bean]
- Spring笔记2-基于注解的方式配置Bean
- Spring整合quartz配置【一】基于MethodInvokingJobDetailFactoryBean实现任务管理
- spring 11 bean配置-基于注解配置bean
- 基于注解的ssh框架之spring配置文件
- Spring4.0学习笔记004——Bean的配置二(基于XML文件)
- Spring4.0学习笔记005——Bean的配置三(基于XML文件)
- Spring4.0学习笔记006——Bean的配置(基于注解)
- 【Java.Spring.Core】【IoC】基于注解的Bean装配(非XML配置)
- 基于注解的SSH框架搭建(打算整合tiles,暂未整合)
- 02.Spring_基于注解的方式配置bean
- spring3 混合使用 XML 与注解(Annotation)进行 Bean 的配置
- Spring3.2 中 Bean 定义之基于 Annotation 和 Java Code 配置方式的源码解析
- SSH框架整合——基于注解