(1) 下载 SpringMVC和 Hibernate 框架: Spring框架和SpringMVC框架,他们是天然集成。
SpringMVC 官网:http://projects.spring.io/spring-framework/
下载地址:http://repo.spring.io/release/org/springframework/spring/4.2.2.RELEASE/
仅下载:
spring-framework-4.2.2.RELEASE-dist.zip
spring-framework-4.2.2.RELEASE-docs.zip
spring-framework-4.2.2.RELEASE-schema.zip
Hibernate官网:http://hibernate.org/orm/
在线安装SpringMVC插件:(STS)http://dist.springsource.com/release/TOOLS/update/e4.4/
在线安装Hibernate Tools 插件
http://tools.jboss.org/downloads/jbosstools/kepler/4.1.2.Final.html
(2) 导入SSH框架整合的jar包:
2.1 导入SpringMVC的jar包:
<!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.2.5.RELEASE</version> </dependency>
2.2 导入Hibernate 的jar包;
<!-- hibernate --> <dependency> <groupId>antlr</groupId> <artifactId>antlr</artifactId> <version>2.7.7</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.hibernate.common</groupId> <artifactId>hibernate-commons-annotations</artifactId> <version>4.0.5.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.11.Final</version> </dependency> <!-- hibernate注解支持 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.3.11.Final</version> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <version>1.0.1.Final</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging</artifactId> <version>3.1.0.GA</version> </dependency> <dependency> <groupId>org.jboss.spec.javax.transaction</groupId> <artifactId>jboss-transaction-api_1.1_spec</artifactId> <version>1.0.1.Final</version> </dependency> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>4.3.11.Final</version> </dependency> <dependency> <groupId>com.mchange</groupId> <artifactId>mchange-commons-java</artifactId> <version>0.2.11</version> </dependency>
2.3 导入三方依赖的包
<!-- 三方依赖 --> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
2.4 mysql 驱动包
<!--mysql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency>
(3) 配置 web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
3.1 配置 Spring 的 IOC 容器;
<!-- 配置 Spring IOC 容器 --> <web:context-param> <web:param-name>contextConfigLocation</web:param-name> <web:param-value>classpath:applicationContext.xml</web:param-value> </web:context-param> <web:listener> <web:listener-class>org.springframework.web.context.ContextLoaderListener</web:listener-class> </web:listener>
3.2 配置 SpirngMVC 的控制器(Servlet)
<!-- 配置 Springmvc 的 DispatcherServlet --> <web:servlet> <web:servlet-name>dispatcherServlet</web:servlet-name> <web:servlet-class>org.springframework.web.servlet.DispatcherServlet</web:servlet-class> <web:init-param> <web:param-name>contextConfigLocation</web:param-name> <web:param-value>classpath:springmvc.xml</web:param-value> </web:init-param> <web:load-on-startup>1</web:load-on-startup> </web:servlet> <web:servlet-mapping> <web:servlet-name>dispatcherServlet</web:servlet-name> <web:url-pattern>/*</web:url-pattern> </web:servlet-mapping>
3.5 配置编码方式过滤器
<!-- 配置编码方式过滤器 ,注意一点,要配置所有的过滤器,最前面 --> <web:filter> <web:filter-name>characterEncodingFilter</web:filter-name> <web:filter-class>org.springframework.web.filter.CharacterEncodingFilter</web:filter-class> <web:init-param> <web:param-name>encoding</web:param-name> <web:param-value>UTF-8</web:param-value> </web:init-param> </web:filter> <web:filter-mapping> <web:filter-name>characterEncodingFilter</web:filter-name> <web:url-pattern>/*</web:url-pattern> </web:filter-mapping>
3.4 配置 HiddenHttpMethodFilter(为了实现REST)
<!-- 为了使用SpringMVC框架实现REST,需配置 HiddenHttpMethodFilter --> <web:filter> <web:filter-name>hiddenHttpMethodFilter</web:filter-name> <web:filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</web:filter-class> </web:filter> <web:filter-mapping> <web:filter-name>hiddenHttpMethodFilter</web:filter-name> <web:url-pattern>/*</web:url-pattern> </web:filter-mapping>
(4) 配置 SpringMVC 配置
4.1 导入命名空间;
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd 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-4.2.xsd">
4.2 配置扫描的包;
<!-- 配置自动扫描的包 --> <context:component-scan base-package="com.yunys.weishop" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" /> </context:component-scan>
4.3 配置视图解析器
<!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean>
4.4 配置静态资源
<!-- 配置静态资源 --> <mvc:default-servlet-handler />
4.5 注解
<!-- 注解 --> <mvc:annotation-driven />
(5) 配置 Spring
5.1 导入命名空间;
<?xml version="1.0" encoding="UTF-8"?> <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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">
5.2 配置自动扫描的包;
<!-- 配置自动扫描的包 --> <context:component-scan base-package="com.yunys.weishop" use-default-filters="false"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" /> </context:component-scan>
5.3 配置数据源
<!-- 配置数据源 --> <context:property-placeholder location="classpath:db.properties" />
5.3.1 db.properties文件
jdbc.user=root jdbc.passowrd=root123 jdbc.driverClass=com.mysql.jdbc.Driver jdbc.jdbcUrl=jdbc:mysql:///jikexueyuancrm
5.4 配置 dataSource
<!-- 配置DataSource --> <bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource"> <property name="user" value="${jdbc.user}"></property> <property name="password" value="${jdbc.passowrd}"></property> <property name="driverClass" value="${jdbc.driverClass}"></property> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property> </bean>
5.5 整合Hibernate
5.5.1 配置 SessionFactory
<!-- 配置SessionFactory --> <bean class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" id="sessionFactory"> <!-- 配置数据源 --> <property name="dataSource" ref="dataSource"></property> <!-- 扫描的实体包(pojo) --> <property name="namingStrategy"> <bean class="org.hibernate.cfg.ImprovedNamingStrategy"></bean> </property> <property name="packagesToScan" value="com.yunys.weishop.entity"></property> <!-- 配置Hibernate 的常用属性 --> <property name="hibernateProperties"> <props> <!-- 数据库的方言 --> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props> </property> </bean>
5.5.2 配置Hibernate 的事务管理器
<!-- 配置Hibernate 的事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"></property> </bean>
(6) SSH整合测试
6.1 新建 test 测试导入junit包:
6.2 新建一个 JUnit 测试类;
6.3 测试数据源
6.4 测试 SessionFactory
6.5 测试操作数据库表!(session)
package com.yunys.weishop.test; import java.util.Date; import javax.sql.DataSource; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.yunys.weishop.entity.Shop; public class TestData { public ApplicationContext acontext = null; @Test public void dataTest() { // 获取ApplicationContext对象 acontext = new ClassPathXmlApplicationContext("applicationContext.xml"); DataSource dataSource = acontext.getBean(DataSource.class); // 获取SessionFactory 对象 SessionFactory sessionFactory = acontext.getBean(SessionFactory.class); // 获取Session对象 Session session = sessionFactory.openSession(); // 获取Transaction事务对象 Transaction tx = session.beginTransaction(); // 创建实体 Shop shop = new Shop("123456", "大哥大", 1, 2, new Date(), new Date(), new Date()); // 保存实体 session.save(shop); // 提交事务 tx.commit(); // 关闭session session.close(); } }
以上为视频笔记