Java学习框架之spring36天(--springMVC+spring+hibernate-- ssh环境配置)

 第一步: 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有关;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值