SpringBoot的基本使用(整合SSM)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: SpringBoot的基本使用(整合SSM)

创建一个Maven工程

image.png


在pom.xml中引入统一的父工程以及需要的启动器

<!--引入父工程-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.7.RELEASE</version>
    </parent>

在resources下添加SpringBoot项目的配置文件application.properties---覆盖默认配置(端口号)

server.port=8888

创建引导类--这个类要在父包下,这样才能扫描子包-类

/**
 * @Author: Promsing
 * @Date: 2021/5/30 - 22:43
 * @Description: 引导类
 * @version: 1.0
 */
@SpringBootApplication
public class UserApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class,args);
    }
}

整合SpringMVC

引入启动器

<!-- springMVc的启动器-->
 <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

创建Controller类

/**
 * @Author: Promsing
 * @Date: 2021/5/30 - 22:36
 * @Description: User表的Controller类
 * @version: 1.0
 */
@Controller
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService service;
    @GetMapping("test")
    @ResponseBody
    public String test(){
        return "hello User";
    }
    @GetMapping("findAll")
    @ResponseBody
    public String findAll(){
        List<Account> users = service.findAll();
        System.out.println(users);
        return "findAll";
    }
}

配置拦截器

首先需要自定义一个拦截器,实现HandlerInterceptor接口

/**
 * @Author: Promsing
 * @Date: 2021/5/30 - 23:06
 * @Description: mvc拦截器
 * @version: 1.0
 */
@Component
public class MyInterceptor implements HandlerInterceptor {
    /**
     * 前置方法 --Handler执行之前执行
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //true 放行
        //false 拦截
        System.out.println("前置方法正在执行!");
        return true;
    }
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("后置方法正在执行!");
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("完成方法正在执行!");
    }
}

配置拦截器

自定义一个Java配置类(使用@Configuration),实现WebMvcConfigurer接口

/**
 * @Author: Promsing
 * @Date: 2021/5/30 - 23:15
 * @Description: 配置拦截器
 *              1.java配置类
 *              2.实现WebMvcConfigurer
 * @version: 1.0
 */
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
    //注入自定义拦截器
    @Autowired
    private MyInterceptor myInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //传入拦截器对象  设置路径--链式编程
        registry.addInterceptor(myInterceptor).addPathPatterns("/**");
    }
}

测试—浏览器访问

整合数据源

引入jdbc的启动器,mysql的驱动

<!--        jdbc的启动器-->
    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
<!--        mysql的驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>

在application.properties中添加四大配置

## 指定数据库名
spring.datasource.username=root
spring.datasource.password=root 
#注释--注意 指定数据源名 spring.datasource.data-password
spring.datasource.url=jdbc:mysql:///ssm
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

整合Mybatis

引入Mybatis的启动器

<!--mybatis的启动器-->
 <dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
       <version>1.3.2</version>
 </dependency>

覆盖默认配置

mybatis.type-aliases-package=com.dynamic.user.pojo

整合通用Mapper

引入启动器

<!--  通用Mapper-->
<dependency>
     <groupId>tk.mybatis</groupId>
     <artifactId>mapper-spring-boot-starter</artifactId>
     <version>2.0.4</version>
</dependency>

添加实体类--需要使用注解@Table,name属性对应表名

/**
 * @Author: Promsing
 * @Date: 2021/5/30 - 23:54
 * @Description: Account实体类
 * @version: 1.0
 */
@Table(name="account")
public class Account {
    private Integer id;
    private String name;
    private Double money;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Double getMoney() {
        return money;
    }
    public void setMoney(Double money) {
        this.money = money;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", money=" + money +
                '}';
    }
}

添加Mapper层的接口

/**
 * @Author: Promsing
 * @Date: 2021/5/31 - 17:28
 * @Description: DAO接口--Mapper
 * @version: 1.0
 */
@Mapper
public interface UserMapper extends tk.mybatis.mapper.common.Mapper<Account> {
      //由于使用了Mapper注解,不需要写其他方法
}

添加Service类

写了一个查询所有的方法,一个删除的方法

/**
 * @Author: Promsing
 * @Date: 2021/5/31 - 0:11
 * @Description: Service层
 * @version: 1.0
 */
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public List<Account> findAll(){
       return userMapper.selectAll();
//        return dao.findAll();
    }
    @Transactional //整合事务--事务的注解
    public void deleteUserById(Long id ){
        this.userMapper.deleteByPrimaryKey(id);
    }
}

整体测试

http://localhost:8888/user/findAll
http://localhost:8888/user/test


总结

总体思路

1.搭建springboot的基本应用

引入统一的父工程,以及需要的启动器


添加引导类使用@SpringBootApplication(这是一个组合注解包含@EnableAutoConfiguration+@ComponentScan+@SpringBootConfiguration)


2.整合SpringMVC

修改端口(server.port=8888)


添加自定义拦截器:实现HandlerInterceptor接口


配置拦截器:自定义一个配置类(@Configuration),实现WebMvcConfigurer接口


3.整合数据源

引入jdbc启动器,mysql驱动


配置四大属性


4.整合Mybatis,Mapper

引入启动器


接口添加@Mapper注解


mapper继承Mapper<User>


个人总结

Spring Boot是一个简化Spring开发的框架。用来监护spring应用开发,约定大于配置,去繁就简,just run 就能创建一个独立的,产品级的应用。


跟整合SSM相比,SpringBoot减少了很多配置文件,自动配置。无需引入太多jar包,只需要一个启动器就行。

内置了Tomcat,直接启动引导类就行


我们在使用Spring Boot时只需要配置相应的Spring Boot就可以用所有的Spring组件,简单的说,spring boot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml配置然


后进行配置。从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
26天前
|
JavaScript Java 测试技术
基于小程序的教育培训微信小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的教育培训微信小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
22 1
|
26天前
|
JavaScript Java 测试技术
基于小程序的外卖小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于小程序的外卖小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
24 2
|
26天前
|
JavaScript Java 测试技术
松江大学城就餐推荐系统+ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
松江大学城就餐推荐系统+ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
18 1
|
26天前
|
JavaScript Java 测试技术
食堂订餐小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
食堂订餐小程序ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
25 1
|
26天前
|
JavaScript Java 测试技术
基于微信小程序的校园综合服务平台ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
基于微信小程序的校园综合服务平台ssm+springboot+vue.js附带文章和源代码设计说明文档ppt
22 1
|
30天前
|
Java 关系型数据库 MySQL
SpringBoot整合JUnit、MyBatis、SSM
SpringBoot整合JUnit、MyBatis、SSM
31 4
|
1月前
|
前端开发 JavaScript Java
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的轻院网购商城管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的轻院网购商城管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
28 5
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的隔离人员的管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的隔离人员的管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
21 3
|
2天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的采购管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的采购管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
19 3