Spring+Hibernate+SpringMVC整合配置(注解式)

来源:互联网 发布:js系列减速机加油标准 编辑:程序博客网 时间:2024/05/16 14:47
概述:近年来,注解式开发越来越流行,虽然不如xml式开发更优秀,但是它的简单易上手仍然吸引大多数程序员的追捧,熟练掌握注解式开发已经称为程序员不可或缺的技能之一!
下面将使用我最近的一个书城小项目为大家带来开发的一些必要配置:
注:jdk1.8+web3.1

1.整体结构:


2.Maven的pom依赖:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.gdq</groupId><artifactId>bookStore</artifactId><version>1.0</version><packaging>war</packaging><description>基于SSH框架的网上书城</description><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 --><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><!--Apache的文件上传 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency><!--json-lib --><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version><classifier>jdk15</classifier></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></project>
3.web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><display-name>bookStore</display-name><!--全局配置扫描 --><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><!--springMVC配置 --><servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springMVC.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>
4.全局配置(applicationContext.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"><!--1、引用外部的配置文件 --><context:property-placeholder location="classpath:dbconfig.properties" /><context:component-scan base-package="com.qf"><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></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><!--扫描Hibernate注解的映射类  --><property name="packagesToScan" value="com.gdq.bean"></property></bean><!--4、配置事务管理器 --><bean id="txManager"class="org.springframework.orm.hibernate5.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><tx:annotation-driven transaction-manager="txManager"/><aop:aspectj-autoproxy></aop:aspectj-autoproxy></beans>
5.springMVC.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="        http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/mvc        http://www.springframework.org/schema/mvc/spring-mvc.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd"><!--注解式实现控制器 --><context:component-scan base-package="com.gdq.web.controller"></context:component-scan><!--配置所有页面的前缀和后缀 --><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!--配置页面的前缀 --><!-- <property name="prefix" value="/WEB-INF/jsp/"></property> --><!--配置后缀 --><property name="suffix" value=".jsp"></property></bean></beans>
6.deconfig.properties(数据库配置)
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/gdq?characterEncoding=UTF-8jdbc.username=rootjdbc.password=123456
7.bean层实现

package com.gdq.bean;import java.util.Date;import java.util.Set;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.OneToMany;import javax.persistence.OneToOne;import javax.persistence.Table;import org.springframework.format.annotation.DateTimeFormat;@Entity@Table(name = "tb_user")public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private long id;@Column(length = 20)private String username;// 用户名private String password;// 密码@Column(length = 2)private String gender;// 性别@Column(length = 100)private String email;// 邮箱@Column(length = 11)private String telephone;// 电话@Column(length = 200)private String introduce;// 简介private String activeCode;// 激活码@Column(length = 5)private String role;// 角色private int state;// 0代表未激活,1代表已激活,2代表注销@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//springMVC自动格式化private Date registTime;// 注册时间public long getId() {return id;}public void setId(long id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getTelephone() {return telephone;}public void setTelephone(String telephone) {this.telephone = telephone;}public String getIntroduce() {return introduce;}public void setIntroduce(String introduce) {this.introduce = introduce;}public String getActiveCode() {return activeCode;}public void setActiveCode(String activeCode) {this.activeCode = activeCode;}public String getRole() {return role;}public void setRole(String role) {this.role = role;}public int getState() {return state;}public void setState(int state) {this.state = state;}public Date getRegistTime() {return registTime;}public void setRegistTime(Date registTime) {this.registTime = registTime;}}
8.dao层实现
@Repositorypublic class UserDaoImpl extends HibernateDaoSupport implements UserDao {@Autowiredprivate SessionFactory factory;@PostConstructpublic void injectSessionFactory() {super.setSessionFactory(factory);}public User insertUser(User user){getHibernateTemplate().save(user);return user;}
9.service层实现
@Service@Transactionalpublic class UserServiceImpl implements UserService{@Autowiredprivate UserDao userDao;public User regUser(User user) throws UserException {return userDao.insertUser(user);}
10.controller层实现
@Controllerpublic class UserController {@Autowiredprivate UserService userService;@RequestMapping("/RegistServlet")public String register(User user) throws UserException {if(userService.regUser(user)!=null) {//发送激活码return "registersuccess";}else {//失败跳转回去return "register";}}

原创粉丝点击