SSM整合过程梳理

简介: SSM整合过程介绍

前言

框架用的好效率自然高!

🏳️‍🌈给大家推荐一个<font
color=green> Java面试刷题网站牛客网,懒羊羊祝你早日成神: Java刷题面试宝藏网站

一.SSM整合流程

1.创建工程

  • 创建一个Maven的web工程
  • pom.xml添加SSM需要的依赖jar包
  • 编写Web项目的入口配置类,实现AbstractAnnotationConfigDispatcherServletInitializer重写以下方法

    • getRootConfigClasses() :返回Spring的配置类->需要==SpringConfig==配置类
    • getServletConfigClasses() :返回SpringMVC的配置类->需要==SpringMvcConfig==配置类
    • getServletMappings() : 设置SpringMVC请求拦截路径规则
    • getServletFilters() :设置过滤器,解决POST请求中文乱码问题

2.SSM整合
Spring

SpringConfig Spring配置类
标识该类为配置类 @Configuration
扫描Service所在的包 @ComponentScan
在Service层要管理事务 @EnableTransactionManagement
读取外部的properties配置文件 @PropertySource
整合Mybatis需要引入Mybatis相关配置类 @Import

第三方数据源配置类 JdbcConfig

第三方数据源配置类 JdbcConfig
构建DataSource数据源,DruidDataSouroce @Bean @Value
构建平台事务管理器,DataSourceTransactionManager @Bean

Mybatis配置类 MybatisConfig

第三方数据源配置类 JdbcConfig
构建SqlSessionFactoryBean,设置别名扫描与数据源 @Bean
构建MapperScannerConfigurer并设置DAO层的包扫描 @Bean

SpringMVC配置类SpringMvcConfig

SpringMVC配置类 SpringMvcConfig
标识该类为配置类 @Configuration
扫描Controller所在的包 @Configuration
开启SpringMVC注解支持 @EnableWebMvc

二.整合配置

2.1添加依赖

pom.xml添加SSM所需要的依赖jar包
在这里插入图片描述

2.2创建项目包结构

  • config目录存放的是相关的配置类
  • controller编写的是Controller类
  • dao存放的是Dao接口,因为使用的是Mapper接口代理方式,所以没有实现类包
  • service存的是Service接口,impl存放的是Service实现类
  • resources:存入的是配置文件,如Jdbc.properties
  • webapp:目录可以存放静态资源
  • test/java:存放的是测试类

在这里插入图片描述

2.3创建SpringConfig配置类

在这里插入图片描述

2.4创建JdbcConfig配置类

在这里插入图片描述

2.5创建MybatisConfig配置类

在这里插入图片描述

2.6创建jdbc.properties

在这里插入图片描述

2.7创建SpringMVC配置类

在这里插入图片描述

2.8创建Web项目入口配置类

三.功能模块

3.1创建模型类

public class Book {
    private Integer id;
    private String type;
    private String name;
    private String description;

}

3.2编写Dao接口

public interface BookDao {

//    @Insert("insert into tbl_book values(null,#{type},#{name},#{description})")
    @Insert("insert into tbl_book (type,name,description) values(#{type},#{name},#{description})")
    public void save(Book book);

    @Update("update tbl_book set type = #{type}, name = #{name}, description = #{description} where id = #{id}")
    public void update(Book book);

    @Delete("delete from tbl_book where id = #{id}")
    public void delete(Integer id);

    @Select("select * from tbl_book where id = #{id}")
    public Book getById(Integer id);

    @Select("select * from tbl_book")
    public List<Book> getAll();
}

3.3编写Service接口和实现类

@Transactional
public interface BookService {
    public boolean save(Book book);
    public boolean update(Book book);
    public boolean delete(Integer id);
    public Book getById(Integer id);
    public List<Book> getAll();
}
@Service
public class BookServiceImpl implements BookService {
    @Autowired
    private BookDao bookDao;
    public boolean save(Book book) { bookDao.save(book); return true; }
    public boolean update(Book book) { bookDao.update(book); return true; }
    public boolean delete(Integer id) {bookDao.delete(id); return true; }
    public Book getById(Integer id) { return bookDao.getById(id); }
    public List<Book> getAll() { return bookDao.getAll(); }
}

3.4编写Contorller类

@RestController
@RequestMapping("/books")
public class BookController {

    @Autowired
    private BookService bookService;

    @PostMapping
    public boolean save(@RequestBody Book book) {
        return bookService.save(book);
    }

    @PutMapping
    public boolean update(@RequestBody Book book) {
        return bookService.update(book);
    }

    @DeleteMapping("/{id}")
    public boolean delete(@PathVariable Integer id) {
        return bookService.delete(id);
    }

    @GetMapping("/{id}")
    public Book getById(@PathVariable Integer id) {
        return bookService.getById(id);
    }

    @GetMapping
    public List<Book> getAll() {
        return bookService.getAll();
    }
}

四.单元测试

4.1新建测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class BookServiceTest {

}

4.2注入Service类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class BookServiceTest {
    @Autowired
    private BookService bookService;
}

4.3编写测试方法

我们先来对查询进行单元测试。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class BookServiceTest {

    @Autowired
    private BookService bookService;

    @Test
    public void testGetById(){
        Book book = bookService.getById(1);
        System.out.println(book);
    }

    @Test
    public void testGetAll(){
        List<Book> all = bookService.getAll();
        System.out.println(all);
    }

}
相关文章
|
5月前
|
前端开发 搜索推荐 Java
【Spring Boot】深度复盘在开发搜索引擎项目中重难点的整理,以及遇到的困难和总结
【Spring Boot】深度复盘在开发搜索引擎项目中重难点的整理,以及遇到的困难和总结
29 0
|
JSON 前端开发 Java
SSM前后端数据操作案例八:在解决问题的道路上思考问题。
SSM前后端数据操作案例八:在解决问题的道路上思考问题。
66 0
一个简单的框架,快速梳理知识体系
一个简单的框架,快速梳理知识体系
86 0
|
SQL JSON 前端开发
【知识点梳理】
【知识点梳理】
|
SQL JSON 前端开发
SSM前后端数据操作案例七:在解决问题的道路上思考问题。
SSM前后端数据操作案例七:在解决问题的道路上思考问题。
69 0
|
XML 前端开发 Java
SSM整合完整流程
SSM整合完整流程
97 0
|
前端开发
前端学习笔记202303学习笔记第五天-梳理项目的基本结构1
前端学习笔记202303学习笔记第五天-梳理项目的基本结构1
68 0
|
Java jenkins 应用服务中间件
价值不言而喻,SSM项目升级springBoot复盘,又是一个极小的细节
价值不言而喻,SSM项目升级springBoot复盘,又是一个极小的细节
114 0
价值不言而喻,SSM项目升级springBoot复盘,又是一个极小的细节
|
Java Maven
从原理和源码梳理Springboot FatJar 的机制
从原理和源码梳理Springboot FatJar 的机制
262 0
从原理和源码梳理Springboot FatJar 的机制
|
存储 缓存 移动开发
前端面试题梳理
前端面试题梳理
206 0