SSM整合 我会带着你远行 2024-03-26 10:36 6阅读 0赞 #### 文章目录 #### * 前言 * 一、导入依赖 * 二、编写配置文件 * * 1.db.properties * 2.log4j.properties * 3.mybatis-config.xml * 4.springmvc.xml * 5.切面通知类 * 5.applicationContext.xml * 6.web.xml * 7.在resource文件夹下创建mapper文件包 * 8.整体包结构 * 总结 -------------------- ## 前言 ## SSM整合 -------------------- ## 一、导入依赖 ## <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <!--springMVC依赖,包含springContext--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.24</version> </dependency> <!-- spring对数据库的访问支持--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.24</version> </dependency> <!-- mybatis依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.11</version> </dependency> <!-- mysql支持--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!-- springMVC整合mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.7</version> </dependency> <!-- log4j日志 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!-- 德鲁伊连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.9</version> </dependency> <!-- lombok注解 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> </dependency> <!--AOP 支持--> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.9.1</version> </dependency> <!--spring事务支持--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.3.24</version> </dependency> <!-- servlet 支持--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <!--配置jackson 否则返回自定义结果处理对象会报错--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.10.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.3</version> </dependency> <!--文件上传--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> ## 二、编写配置文件 ## ### 1.db.properties ### db.driverClassName=com.mysql.jdbc.Driver db.url=jdbc:mysql://localhost:3306/库名?useSSL=false db.username=账号 db.password=密码 ### 2.log4j.properties ### log4j.rootLogger=error log4j.logger.com.lzl.mapper=debug,stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n ### 3.mybatis-config.xml ### <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "https://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- 根标签 --> <configuration> <settings> <setting name="logImpl" value="LOG4J"/> </settings> </configuration> ### 4.springmvc.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:mvc="http://www.springframework.org/schema/mvc" 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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd "> <!-- bean definitions here --> <!-- springmvc已经帮我们提供这三大组件,这里只需要配置就可以了 --> <mvc:annotation-driven/> <!-- 扫描包下的注解,只对 web层进行扫描即可 --> <context:component-scan base-package="com.wmj.controller"> <!-- 设置只扫描 Controllrt相关注解, 不配置的话,在加载适配器的时候就会找不到映射对象,报404的错误 --> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.RestController"/> </context:component-scan> <!-- 放行静态资源 --> <mvc:default-servlet-handler/> </beans> ### 5.切面通知类 ### package com.wmj.advice; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; /** * --效率,是成功的核心关键-- * * @Author lzl * @Date 2023/2/17 19:21 */ @Aspect public class EmployeeServiceAdvice { @Pointcut("execution(public * com.wmj.service.impl.*ServiceImpl.*(..))") public void pc(){ } @Before("execution(public * com.wmj.service.impl.*ServiceImpl.*(..))") public void before(){ System.out.println("前置通知:方法调用之前执行"); System.out.println("记录日志"); } @After("EmployeeServiceAdvice.pc()") public void after(){ System.out.println("后置通知(最终通知),目标对象调用自己的方法后执行,无论是否发生异常都会执行"); } @AfterReturning("EmployeeServiceAdvice.pc()") public void after_returning(){ System.out.println("后置通知,目标对象调用自己的方法后执行,出现异常则不执行"); } public void after_throwing(){ System.out.println("异常通知,目标对象调用自己的方法出现异常执行"); } public void around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { System.out.println("环绕通知,环绕之前..."); proceedingJoinPoint.proceed(); System.out.println("环绕通知,环绕之后..."); } } ### 5.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 "> <!-- bean definitions here --> <!-- 导入db.properties --> <context:property-placeholder location="classpath:db.properties"/> <!-- 配置数据源 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="username" value="${db.username}"/> <property name="password" value="${db.password}"/> <property name="url" value="${db.url}"/> <property name="driverClassName" value="${db.driverClassName}"/> </bean> <!-- 扫描对应包下的注解 --> <context:component-scan base-package="com.wmj"> <!-- 指定不扫描某个注解 防止和springMVC注解扫描冲突 --> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.RestController"/> </context:component-scan> <!-- SqlSessionFactoryBean --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 必写属性 --> <property name="dataSource" ref="dataSource"/> <!-- 非必写属性,作用:引入 mybatis-config.xml --> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!-- 非必写属性,作用:如果Mapper和Mapper.xml不在同一个目录,配置Mapper.xml具体位置, classpath:后面不能有空格 --> <property name="mapperLocations" value="classpath:mapper/*.xml"/> <!-- 设置别名 --> <property name="typeAliasesPackage" value="com.wmj.pojo"/> </bean> <!-- 扫描Mapper接口,生成代理对象 --> <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.wmj.mapper"/> </bean> <!-- 事务配置 --> <!-- 配置事务平台管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 开启注解驱动事务支持 --> <tx:annotation-driven/> <!-- AOP配置 --> <!-- 通知 --> <bean id="employeeAdvice" class="com.wmj.advice.EmployeeServiceAdvice"/> <!-- 配置aop --> <aop:config> <!-- 切点 --> <aop:pointcut id="pc" expression="execution(public * com.wmj.service.impl.*ServiceImpl.*(..))"/> <!-- 切面 ref:关联要增强的代码(通知类) --> <aop:aspect ref="employeeAdvice"> <!-- aop:after-returning配置的是后置通知,目标对象调用方法后执行,发生异常不执行 --> <aop:before method="before" pointcut-ref="pc"/> <aop:after-returning method="after_returning" pointcut-ref="pc"/> </aop:aspect> </aop:config> </beans> ### 6.web.xml ### <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <!-- applicationContext.xml文件的加载时机和ServletContext生命周期一致 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <!-- 监听器--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置前端控制器 --> <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> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> ### 7.在resource文件夹下创建mapper文件包 ### ![在这里插入图片描述][c324df23a5954f9d92d3d766dfdab6f0.png] > 如果mapper.xml文件和mapper接口在同一包下,则不需要配置此步。相应的,在applicationContext.xml文件中的sqlsessionFactory也不需要配置xml的加载位置。但是需要在pom.xml文件的插件标签(bulid)中,设置资源编译,防止编译出现不编译mapper.xml文件的问题 **资源编译配置** <resources> <resource> <directory>src/main/java</directory> <includes> <include>*.xml</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> ### 8.整体包结构 ### ![在这里插入图片描述][26a333e9f8b5401ea382546703690324.png] 到此完成 -------------------- ## 总结 ## SSM整合的方法大同小异,主要是思路要捋清,不少配置,按部就班就可以完成。 [c324df23a5954f9d92d3d766dfdab6f0.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/26/abecd50bc1ed42cc9a2c2e5fa3ec97cd.png [26a333e9f8b5401ea382546703690324.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/26/7ef732724ef3454bb8c02da5f14df03d.png
相关 整合 SSM 1.1 相关依赖 <dependency> <groupId>org.springframework</groupId> <art 不念不忘少年蓝@/ 2022年12月05日 05:21/ 0 赞/ 81 阅读
相关 ssm整合 整合:spring4.2.5+mybatis3.2.8+springMVC+maven 环境:Myeclipse2014+mysql5.5.20+tomcat8+jdk1. 柔光的暖阳◎/ 2022年07月13日 11:19/ 0 赞/ 197 阅读
相关 ssm整合 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis -------------------- > 我们看招聘信息的时候,经常 古城微笑少年丶/ 2022年07月12日 06:27/ 0 赞/ 92 阅读
相关 ssm整合 手把手教你整合最优雅SSM框架:SpringMVC + Spring + MyBatis -------------------- > 我们看招聘信息的时候,经常 墨蓝/ 2022年07月12日 06:27/ 0 赞/ 117 阅读
相关 ssm整合 在mybatis和spring整合后 , 在把springmvc整合进来 在maven里创建web工程 然后进行mybatis和spring的整合步骤(写在其他博客里) 超、凢脫俗/ 2022年02月12日 10:10/ 0 赞/ 497 阅读
相关 ssm整合 一、注入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mav 快来打我*/ 2022年01月23日 12:57/ 0 赞/ 512 阅读
相关 SSM--SSM整合 一、项目层级结构以及所需JAR包: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9 傷城~/ 2022年01月21日 23:37/ 0 赞/ 545 阅读
相关 ssm整合 ssm整合 项目目录 ![1560559-20190805161522126-1893405258.png][] jar ![1560559-2019080 桃扇骨/ 2021年10月24日 02:56/ 0 赞/ 544 阅读
相关 SSM整合 前提:jdk,maven,tomcat,STS都已经安装配置好了 spring-4.3.7 + mybatis-3.3.0 + maven3.5+jdk8(这个组合会减少很多 悠悠/ 2021年09月28日 07:58/ 0 赞/ 512 阅读
相关 SSM整合 SSM:Spring+SpringMVC+MyBatis 1、导包 1)、Spring 【aop核心】 com.springsource.net.sf. 男娘i/ 2021年09月23日 16:18/ 0 赞/ 554 阅读
还没有评论,来说两句吧...