第一步: Spring+orm( 对象关系映射 )
1.1 创建动态web项目 Dynamic Web Project
1.2 引入jar包 : 共24个 里面包含了springmvc的jar包;
antlr-2.7.7.jar
aspectjrt-1.8.9.jar
aspectjweaver-1.8.9.jar
c3p0-0.9.1.2.jar
commons-logging-1.1.3.jar
dom4j-1.6.1.jar
hibernate-commons-annotations-5.0.1.Final.jar
hibernate-core-4.2.21.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
jandex-2.0.3.Final.jar
javassist-3.20.0-GA.jar
jboss-logging-3.1.0.GA.jar
jboss-transaction-api_1.2_spec-1.0.1.Final.jar
mysql-connector-java-5.1.39.jar
spring-aop-4.3.8.RELEASE.jar
spring-beans-4.3.8.RELEASE.jar
spring-context-4.3.8.RELEASE.jar
spring-core-4.3.8.RELEASE.jar
spring-expression-4.3.8.RELEASE.jar
spring-jdbc-4.3.8.RELEASE.jar
spring-orm-4.3.8.RELEASE.jar
spring-tx-4.3.8.RELEASE.jar
spring-web-4.3.8.RELEASE.jar
spring-webmvc-4.3.8.RELEASE.jar
1.3: 添加扫描, 让spring去管理dao层和service层的注解
<!-- 使用spring的扫描对service和到进行扫描 -->
<!-- controller 交给springmvc管理.所有从controller中剔除;-->
<context:component-scan base-package="com.lanou">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
1.4 将数据源( 从数据池中获取 ) 和sessionFactory放到spring容器当中
第一: 需要在src目录下创建Application.xml文件;
第二:找到工作空间Namespaces 将aop勾选(与切面有关和aop注解扫描)-----beans勾选----context勾选(与扫描和注解有关)----tx勾选(事务管理有关)
第三: 注意从连接池中获取数据源在配置属性的时候, 要去读取配置文件中的给的参数;配置数据源bean
<context:property-placeholder location="classpath:db.properties"/>
<!-- 从连接池,获取数据源 -->
<bean id="dataSouce" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
第四: 将sessionFactory交给spring管理--这时要与hibernate产生关系了;
需要给bean配置xml映射文件; 给sessionFactory 配置扫描映射文件属性;
<!--第二步: 获取sessionFactory的类所在的包; 使用Spring来管理sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!-- 获取数据源 -->
<property name="dataSource" ref="dataSouce"></property>
<!--hibernate自身的配置 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<!-- 扫描映射文件 -->
<property name="mappingLocations" value="classpath:com/lanou/entity/*.hbm.xml"></property>
</bean>
1.5 创建事物管理对象那个. 对sessionFactory进行管理; 需要bean标签, tx标签(事物驱动),aop标签(使用这个标签后可以在后面使用注解形式,进行事物管理)
<!-- 第三步: 三步完成=====这时spring和hibernate就整合好了;
1.创建事物管理对象.将我们的sessionfactory交给他管理 spring管理事物. 必须用getcurrentsession;
给事物管理者注入了sessionfactory
2.对事物管理者提供一些管理原则;
-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 事务驱动-->
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- aop注解扫描 添加上这句话以后, 就可以使用注解进行!-->
<aop:aspectj-autoproxy/>
以上完成: 即完成了对spring和hibernate的整合;
<?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:aop="http://www.springframework.org/schema/aop"
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/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!--第一步; 从配置文件中获取链接数据库 的相关信息
需要使用${key}的形式来进行获取
-->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 使用spring的扫描对service和到进行扫描 -->
<!-- controller 交给springmvc管理.所有从controller中剔除;-->
<context:component-scan base-package="com.lanou">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 从连接池,获取数据源 -->
<bean id="dataSouce" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!--第二步: 获取sessionFactory的类所在的包; 使用Spring来管理sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!-- 获取数据源 -->
<property name="dataSource" ref="dataSouce"></property>
<!--hibernate自身的配置 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<!-- 扫描映射文件 -->
<property name="mappingLocations" value="classpath:com/lanou/entity/*.hbm.xml"></property>
</bean>
<!-- 第三步: 三步完成=====这时spring和hibernate就整合好了;
1.创建事物管理对象.将我们的sessionfactory交给他管理 spring管理事物. 必须用getcurrentsession;
给事物管理者注入了sessionfactory
2.对事物管理者提供一些管理原则;
-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 事务驱动-->
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- aop注解扫描 添加上这句话以后, 就可以使用注解进行!-->
<aop:aspectj-autoproxy/>
</beans>
2. 整合spring 管理请求(管理请求)
2.1. 导入springmvc所需要的jar包;
2.2 编写springMVC的配置文件 ( 创建在src下面, 建议命名为spring-servlet.xml)
注意: 由于请求转发是交给springmvc来管理, 所以springmvc只是扫描controller;
<?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.3.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.3.xsd">
<!--只是扫描controller; -->
<context:component-scan base-package="com.lanou" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- prefix的value + return的字符串 + suffix的value -->
<!-- /resource/views/index.jsp -->
<property name = "prefix" value="/resource/views/"></property><!--视图的路径 -->
<property name = "suffix" value = ".jsp"></property><!-- 视图的格式 -->
</bean>
<!-- 静态资源的处理 js css img -->
<mvc:resources location="/resource/" mapping="/resource/**"></mvc:resources>
<!-- 启动注解 -->
<mvc:annotation-driven></mvc:annotation-driven>
</beans>
2.3 配置 web.xml
1. 在web.xml当中设置dispatchServlet这个Servlet来保证springMVc可以运行,工作;
<!-- 启动我们的springMVC帮我们管理请求 只有DispatcherServlet 配置了Servlet
springmvc才能管理请求-->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 帮我读取这个springmvc的配置文件;-->
<param-value>classpath:spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2. 设置监听器.
帮我们进行配置文件的读取. 就不我们字节去调用ApplicationContext 去创建bean了;
向IOC中注册bean Application开头的配置文件.spring去处理;
引入两个jar包
spring-web-4.3.8.RELEASE.jar
spring-webmvc-4.3.8.RELEASE.jar
3. 提供spring读取配置文件的设置; 找到这个设置, 才能去读取配置在src下面的spring Application.xml文件
可以读取src下面所有Application开头 . xml结尾的文件;
<!-- 供spring读取的配置文件的设置; -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application*.xml</param-value>
</context-param>
web.xml配置完成;
<display-name>SpringMVCSH</display-name>
<!-- 供spring读取的配置文件的设置; -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:application*.xml</param-value>
</context-param>
<!-- 监听器 帮我们进行配置文件的读取 向IOC中注册bean Application开头的配置文件.spring去处理; -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 启动我们的springMVC帮我们管理请求 只有DispatcherServlet 配置了Servlet springmvc才能管理请求 -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- 帮我读取这个springmvc的配置文件; -->
<param-value>classpath:spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
ssh环境配置流程:
springmvc + spring + hibernate
1.spring +orm(对象关系映射)
1.1 jar包的引入;
1.2 将数据源(来自于链接池)和sessionfactory放入到SpringIOC容器中; (扫描dao,service)
1.3 将sessionFactory委托给我们的spring进行事物管理
2. springMVC整合进来 (管理请求)
1.2 springmvc 所需要的包
2.2: 编写SpringMVC的配置文件 (扫描controller)
2.3: 在web.xml当中设置dispatchServlet这个Servlet来保证springMVc可以运行,工作;
<servlet > class写spring的jar包<servlet>
3: 在 web.xml当中设置spring的监听器;
在web.xml设置监听器 ;在服务器启动的时候,开始读取所有配置文件, 就不用ApplicationContext;
spring-web-4.3.8.RELEASE.jar 与监听有关;
spring-webmvc-4.3.8.RELEASE.jar 与springmvc有关;