zoukankan      html  css  js  c++  java
  • SSM的整合

    框架的整合:

    1. 依赖整合
        aop的包:
            aspectweaver
            spring-aop
        spring核心:
            spring-context
            spring-web
            spring-webmvc
            spring-test
            spring-tx
            spring-jdbc
        junit:
            junit
        mysql:
            mysql-connector-java
        servlet+jsp:
            servlet-api
            jsp-api
        jstl:  
            jstl
        log:
            log4j
            slf4j-api
            slf4j-log4j12
        mybatis:
            mybatis
            mybatis-spring
        连接池:
            c3p0
            
        <properties>
            <spring.version>5.0.2.RELEASE</spring.version>
            <slf4j.version>1.6.6</slf4j.version>
            <log4j.version>1.2.12</log4j.version>
            <mysql.version>5.1.6</mysql.version>
            <mybatis.version>3.4.5</mybatis.version>    
        </properties>
         
        <dependencies>
           <!-- spring -->
           <dependency>
              <groupId>org.aspectj</groupId>
              <artifactId>aspectjweaver</artifactId>
              <version>1.6.8</version>
           </dependency>
         
           <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-aop</artifactId>
              <version>${spring.version}</version>
            </dependency>
         
        
           <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context</artifactId>
              <version>${spring.version}</version>
            </dependency>
         
        
           <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-web</artifactId>
              <version>${spring.version}</version>
            </dependency>
         
        
           <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-webmvc</artifactId>
              <version>${spring.version}</version>
            </dependency>
         
        
           <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-test</artifactId>
              <version>${spring.version}</version>
            </dependency>
         
        
           <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-tx</artifactId>
              <version>${spring.version}</version>
            </dependency>
         
        
           <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-jdbc</artifactId>
              <version>${spring.version}</version>
            </dependency>
         
        
           <dependency>
              <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.12</version>
              <scope>compile</scope>
            </dependency>
         
        
           <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>${mysql.version}</version>
            </dependency>
         
        
           <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>servlet-api</artifactId>
              <version>2.5</version>
              <scope>provided</scope>
            </dependency>
         
        
           <dependency>
              <groupId>javax.servlet.jsp</groupId>
              <artifactId>jsp-api</artifactId>
              <version>2.0</version>
              <scope>provided</scope>
            </dependency>
         
        
           <dependency>
              <groupId>jstl</groupId>
              <artifactId>jstl</artifactId>
              <version>1.2</version>
            </dependency>
         
        
           <!-- log start -->
            <dependency>
              <groupId>log4j</groupId>
              <artifactId>log4j</artifactId>
              <version>${log4j.version}</version>
            </dependency>
         
        
           <dependency>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-api</artifactId>
              <version>${slf4j.version}</version>
            </dependency>
         
           <dependency>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-log4j12</artifactId>
              <version>${slf4j.version}</version>
            </dependency>
                   <!-- log end -->
            <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>${mybatis.version}</version>
           </dependency>
           <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis-spring</artifactId>
              <version>1.3.0</version>
            </dependency>
         
        
           <dependency>
              <groupId>c3p0</groupId>
              <artifactId>c3p0</artifactId>
              <version>0.9.1.2</version>
              <type>jar</type>
              <scope>compile</scope>
            </dependency>
         </dependencies>    
        
    2. 配置文件整合
        applicationContext.xml的约束编写:
            <?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:aop="http://www.springframework.org/schema/aop"    
                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.xsd    
                http://www.springframework.org/schema/aop    
                http://www.springframework.org/schema/aop/spring-aop.xsd
                http://www.springframework.org/schema/tx     
                http://www.springframework.org/schema/tx/spring-tx.xsd">
                
                 <!-- 开启注解扫描,要扫描的是service和dao层的注解,要忽略web层注解,因为web层让SpringMVC框架 去管理 -->    
                 <context:component-scan base-package="cn.itcast">        
                     <!-- 配置要忽略的注解 -->        
                     <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>    
                 </context:component-scan> 
                 
                 <!--spring整合mybatis框架-->
                <!--配置c3p0连接池-->
                <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
                    <property name="driverClass" value="com.mysql.jdbc.Driver"/>
                    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm"/>
                    <property name="user" value="root"/>
                    <property name="password" value="nrblwbb7"/>
                </bean>
            
                <!--配置SqlSessionFactory-->
                <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                    <property name="dataSource" ref="dataSource"/>
                </bean>
            
                <!--配置映射接口所在的包-->
                <!--自动为接口生成代理对象,并将代理对象存在spring的IOC容器中-->
                <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                    <property name="basePackage" value="com.itheima.mapper"/>
                </bean>
            
            
                <!--配置Spring框架声明式事务管理-->
                <!--配置事务管理器-->
                <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                    <property name="dataSource" ref="dataSource"/>
                </bean>
                <!--配置事务通知-->
                <tx:advice id="txAdvice" transaction-manager="transactionManager">
                    <tx:attributes>
                        <tx:method name="find*" read-only="true"/>
                        <tx:method name="*"/>
                    </tx:attributes>
                </tx:advice>
                <!--配置AOP增强,切面-->
                <aop:config>
                    <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.itheima.service.impl.*.*(..))"/>
                </aop:config>
            
            </beans>
        
        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:context="http://www.springframework.org/schema/context"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   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.itheima">
                    <!--配置需要扫描的注解,只需要扫描Controller注解就可以-->
                    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
                </context:component-scan>
            
                <!--配置视图解析器-->
                <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                    <property name="prefix" value="/WEB-INF/pages/"/>
                    <property name="suffix" value=".jsp"/>
                </bean>
            
                <!--配置静态资源过滤,不拦截-->
                <mvc:resources mapping="/js/**" location="/js/"></mvc:resources>
                <mvc:resources mapping="/images/**" location="/images/"></mvc:resources>
                <mvc:resources mapping="/css/**" location="/css/"></mvc:resources>
            
                <!--开启SpringMVC的注解驱动支持-->
                <mvc:annotation-driven></mvc:annotation-driven>
            
            </beans>
            
    3. 创建项目的结构:
        domain
        controller
        mapper
        service
            impl
    4. spring整合SpringMVC, 核心是需要在web.xml配置文件中加载applicationContext.xml文件(也就是配置Spring的监听器):
        <!--配置Spring的监听器-->
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    	<!--配置加载类的配置文件-->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:applicationContext.xml</param-value>
    	</context-param>
    
    	<!--配置前端控制器-->
    	<servlet>
    		<servlet-name>dispatcherServlet</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<!--加载SpringMVC的配置文件-->
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>classpath:springmvc.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>dispatcherServlet</servlet-name>
    		<url-pattern>/</url-pattern>
    	</servlet-mapping>
    
    
    	<!--配置编码过滤器-->
    	<filter>
    		<filter-name>characterEncoding</filter-name>
    		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    		<init-param>
    			<param-name>encoding</param-name>
    			<param-value>UTF-8</param-value>
    		</init-param>
    	</filter>
    	<filter-mapping>
    		<filter-name>characterEncoding</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
     
    5. 在Controller中注入service,测试是否整合成功,如果正常访问并输出,则说明spring整合springMVC成功
    
    6. Mybatis的配置
        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE configuration
                PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
                "http://mybatis.org/dtd/mybatis-3-config.dtd">
        <configuration>
        
            <!--配置环境-->
            <environments default="mysql">
                <environment id="mysql">
                    <transactionManager type="JDBC"></transactionManager>
                    <dataSource type="POOLED">
                        <property name="driver" value="com.mysql.jdbc.Driver"/>
                        <property name="url" value="jdbc:mysql://localhost:3306/ssm"/>
                        <property name="username" value="root"/>
                        <property name="password" value="nrblwbb7"/>
                    </dataSource>
                </environment>
            </environments>
        
        
        
            <!--引入映射配置文件-->
            <mappers>
                <package name="com.itheima.mapper" />
            </mappers>
        
        </configuration>
    
    7. spring整合mybatis
        mybatis的配置文件总共包含了两个部分,一个是环境的配置,包括事务和数据源,这两个部分交给spring,最后还有一个映射配置文件,也交给spring去整合,最后mybatis的配置文件就可以删除了.
        
        在spring的配置文件中配置
            连接池
                <!--配置c3p0连接池-->
                <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
                    <property name="driverClass" value="com.mysql.jdbc.Driver"/>
                    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssm"/>
                    <property name="user" value="root"/>
                    <property name="password" value="nrblwbb7"/>
                </bean>
            配置sqlSessionFactory工厂
                 <!--配置SqlSessionFactory-->
                <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                    <property name="dataSource" ref="dataSource"/>
                </bean>
            配置mapper接口所在的包
                <!--配置映射接口所在的包-->
                <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                    <property name="basePackage" value="com.itheima.mapper"/>
                </bean>
                
    8. 配置Spring的事务管理
        <!--配置事务管理器-->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"/>
        </bean>
        <!--配置事务通知-->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="find*" read-only="true"/>
                <tx:method name="*"/>
            </tx:attributes>
        </tx:advice>
        <!--配置AOP增强,切面-->
        <aop:config>
            <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.itheima.service.impl.*.*(..))"/>
        </aop:config>
    

    log4j日志

    1. 日志级别:
        trace --> debug --> info --> warn --> error --> fatal
    

    提供了两个模板,一个是mybatis使用注解,一个mybatis使用xml,可以去下载查看
    https://www.jianguoyun.com/p/DTyTbr0Q7sKPBxj2_nk

  • 相关阅读:
    C#小常识集锦(一)《更锋利的CSharp代码》读书笔记
    QueryBuilder 优雅的Linq To SQL动态查询(转)
    了解 NoSQL 的必读资料
    微软报表
    linq to sql 中,如何解决多条件查询问题,答案,用表达式树! (下)
    LINQ体验(17)——LINQ to SQL语句之动态查询
    细数那些运行在微软平台上的NoSQL数据库
    5道经典的程序题
    打造自己的LINQ Provider(中):IQueryable和IQueryProvider (转 李会军)
    Expression Examples :Report Builder
  • 原文地址:https://www.cnblogs.com/wadmwz/p/9788160.html
Copyright © 2011-2022 走看看