失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > SSM框架整合详细过程

SSM框架整合详细过程

时间:2022-07-01 11:59:20

相关推荐

SSM框架整合详细过程

整合思路

由于SpringMVC是Spring框架中的一个模块,SSM框架的整合只涉及Spring与MyBatis的整合及Spring MVC与MyBatis的整合。如下图所示

整合环境

SSM框架整合需要使用Spring、SpringMVC、Mybaits依赖的jar包。项目创建后,需要将这些jar导入。如果是maven工程,只需在pom文件中添加以下依赖包,具体内容如下:

<!--spring核心依赖包--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.2.5.RELEASE</version><scope>test</scope></dependency><!--spring AOP--><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.2.5.RELEASE</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjtools</artifactId><version>1.8.9</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjrt</artifactId><version>1.5.4</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.5</version><scope>runtime</scope></dependency><!--spring 的事物管理--><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.1.5.RELEASE</version></dependency><!--第三方数据源依赖--><dependency><groupId>mons</groupId><artifactId>commons-pool2</artifactId><version>2.5.0</version></dependency><dependency><groupId>mons</groupId><artifactId>commons-dbcp2</artifactId><version>2.5.0</version></dependency><!-- mybatis与spring整合的jar包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency><!--spring管理的 jdbc ,以及事务相关的--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.17.RELEASE</version></dependency><!--mybatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency><!--mySQL数据库连接依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency><!--springmvc依赖包--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.5.RELEASE</version></dependency><!--json与java对象转换依赖包--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.8</version></dependency><!--文件上传与下载依赖包--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.8.0</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency>

项目结构

配置文件

SSM配置文件包括数据库配置、Spring配置、mybaits配置、spring-mvc配置、日志配置及web.xml配置等。

数据库连接配置(db.properties):

jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://xx.xx.xxx.xxx:3306/sl?serverTimezone=GMT%2B8jdbc.username=rootjdbc.password=xxxxxxjdbc.maxTotal=30jdbc.maxIdle=10jdbc.initialSize=5

日志配置(log4j.properties):

# Global logging configurationlog4j.rootLogger=ERROR, stdout# MyBatis logging configuration....bjwl=DEBUG# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

applicationContext.xml配置

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context-4.3.xsd"><!-- 开启扫描 --><context:annotation-config/><!--读取db.properties --><context:property-placeholder location="classpath:db.properties"/><!-- 配置数据源 --><bean id="dataSource"class="mons.dbcp2.BasicDataSource"><!--数据库驱动 --><property name="driverClassName" value="${jdbc.driver}"/><!--连接数据库的url --><property name="url" value="${jdbc.url}"/><!--连接数据库的用户名 --><property name="username" value="${jdbc.username}"/><!--连接数据库的密码 --><property name="password" value="${jdbc.password}"/><!--最大连接数 --><property name="maxTotal" value="${jdbc.maxTotal}"/><!--最大空闲连接 --><property name="maxIdle" value="${jdbc.maxIdle}"/><!--初始化连接数 --><property name="initialSize" value="${jdbc.initialSize}"/></bean><!-- 事务管理器,依赖于数据源 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--配置MyBatis工厂 --><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><!--注入数据源 --><property name="dataSource" ref="dataSource"/><!--指定核心配置文件位置 --><property name="configLocation" value="classpath:mybatis-config.xml"/></bean><!-- Mapper代理开发(基于MapperScannerConfigurer) --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.bjwl.dao"/></bean><!--自动扫描--><context:component-scan base-package="com.bjwl.**"/></beans>

springmvc.xml配置

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-4.3.xsd/schema/context/schema/context/spring-context-4.3.xsd/schema/mvc/schema/mvc/spring-mvc.xsd"><!-- 指定需要扫描的包 --><context:component-scan base-package="com.bjwl.controller" /><!-- 配置注解驱动 --><mvc:annotation-driven /><!--配置静态资源的访问映射,此配置中的文件,将不被前端控制器拦截 --><mvc:resources location="/js/" mapping="/js/**" /><!-- 定义视图解析器 --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 设置前缀 --><property name="prefix" value="/" /><!-- 设置后缀 --><property name="suffix" value=".jsp" /></bean><!-- 配置文件上传解析器 MultipartResolver --><bean id="multipartResolver" class="org.springframework.monsMultipartResolver"><!-- 设置请求编码格式--><property name="defaultEncoding" value="UTF-8" /></bean></beans>

myBatis-config.xml配置

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><!--配置Mapper的位置 --><mappers><mapper resource="mapper/UserDao.xml"/></mappers></configuration>

测试代码

pojo目录下实体类代码

public class UserEntity {private Integer id;private String username;private String address;//省略get set方法}

dao目录下代码

@Mapperpublic interface UserDao {List<UserEntity> getAll();UserEntity findUserById(Integer id);int addUser(UserEntity user);int updateData(UserEntity user);int deleteData(Integer id);}

不要忘了@Mapper或@Repository注解符

services目录下,服务接口与实现

public interface UserService {List<UserEntity> getAll();UserEntity getUserById(int id);int save(UserEntity userEntity);int remove(int id);}@Service("userService")public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;@Overridepublic List<UserEntity> getAll() {return userDao.getAll();}@Overridepublic UserEntity getUserById(int id) {return userDao.findUserById(id);}@Overridepublic int save(UserEntity userEntity) {int num=0;if (userEntity.getId() == null) {num = userDao.addUser(userEntity);} else {num = userDao.updateData(userEntity);}return num;}@Overridepublic int remove(int id) {return userDao.deleteData(id);}}

不要忘了在具体的实现类上加注解符@Service

controller目录下写控制类

@RestController@RequestMapping("/user")public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/list")public List<UserEntity> getAll(){return userService.getAll();}@RequestMapping("/getUserById")public UserEntity getUserById(Integer id){return userService.getUserById(id);}@RequestMapping("/save")public Map saveData(@RequestBody UserEntity userEntity ){Map<String,String> map = new HashMap<>();int num= userService.save(userEntity);System.out.println("保存数据返回参数!");if(num>-1) {map.put("msg", "保存成功!");}else{map.put("msg", "保存失败!");}return map;}@RequestMapping("/delete")public Map delData(Integer id){Map<String,String> map = new HashMap<>();int num= userService.remove(id);if(num>-1) {map.put("msg", "删除成功!");}else{map.put("msg", "删除失败!");}return map;}}

全部返回json数据,注意注解赋@RestController、@RequestMapping、@RequestBody的使用

使用postman进行测试:

如果觉得《SSM框架整合详细过程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。