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

  • 相关阅读:
    动态传参
    函数的介绍
    文件的操作
    send email with formatted table
    minimize and close window with customed winform
    python algorithm
    something important about docker
    book list
    which language is suitable for what to do
    Find Duplicate Items in list fast
  • 原文地址:https://www.cnblogs.com/wadmwz/p/9788160.html
Copyright © 2011-2022 走看看