Spring Boot的介绍以及Spring+SpringMvc+MyBatis+springboot项目整合案例

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。 也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具 同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等), Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都 只需要非常少量的配置代码,开发者能够更加专注于业务逻辑
  1. springboot是什么
    Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。
    也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具

    同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),
    Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都
    只需要非常少量的配置代码,开发者能够更加专注于业务逻辑

    注1:敏捷式开发
    注2:spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,

     就像maven整合了所有的jar包,spring boot整合了所有的框架
    
    
  2. 入门实例 - HelloWorld
    File-->New-->Project...
    Spring Initializr
    Maven Project
    Web
    spring web

    运行启动入口类的main方法

注1:包和类不能乱改,只能在com.zking.springboot01建子包,因为程序只加载Application.java所在包及其子包下的内容
com.zking.springboot01

                    controller
                    service
                    mapper
                    model

注2:内嵌的Tomcat

    1.使用内嵌Tomcat的好处
      web应用之间互不影响(springcloud)
      外置
    2.访问地址简化
      http://localhost:8080/mvc/xxx
      内置
      http://localhost:8080/xxx
   

                     
  1. springboot的配置修改
    application.properties-->application.yml(yaml/yml)
    server.port=80
    server.servlet.context-path=/s01

    @RestController=@Controller+@ResponseBody

Spring+SpringMvc+MyBatis+springboot整合
File-->New-->Project...
Spring Initializr
Maven Project
Web

Web

Core

Lombok
Aspects
DevTools

SQL

mybatis+jdbc+mysql


1.修改SpringBoot的数据源Druid(默认数据源是org.apache.tomcat.jdbc.pool.DataSource)

1.1 项目地址

https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

1.2 引入依赖

 <groupId>com.alibaba</groupId>
 <artifactId>druid-spring-boot-starter</artifactId>
 <version>1.1.10</version>

1.3 配置application.yml

application.yml和application.properties区别?
yml文件的好处,天然的树状结构,一目了然,实质上跟properties是差不多的。

配置application.yml文件注意事项:
1) 原有的key,例如spring.mybatis.xxx,按“.”分割,都变成树状的配置
2) key后面的冒号,后面一定要跟一个空格
3) 把原有的application.properties删掉。然后一定要执行一下 maven -X clean install

1.4 启动SpringBoot项目访问druid

http://localhost:tomcat端口号/项目名称/druid/

2.配置Mybatis

2.1 引入依赖

 <groupId>org.mybatis.spring.boot</groupId>
 <artifactId>mybatis-spring-boot-starter</artifactId>
 <version>1.3.2</version>

MyBatis-Spring-Boot-Starter依赖将会提供如下:
1) 自动检测现有的DataSource。
2) 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入进行传递。
3) 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例。
4) 自动扫描您的mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到您的bean中。

就是说,使用了该Starter之后,只需要定义一个DataSource即可(application.properties或application.yml中可配置),它会自动创建使用该DataSource的SqlSessionFactoryBean以及SqlSessionTemplate。会自动扫描你的Mappers,连接到SqlSessionTemplate,并注册到Spring上下文中。

2.2 配置application.yml

mybatis:

 #配置SQL映射文件路径
 mapper-locations: classpath:mapper/*.xml
 #配置别名
 type-aliases-package: com.zking.项目名.model

2.3 使用Mybatis-Generator插件生成代码

  2.3.1 导入并修改generatorConfig.xml和jdbc.properties(resources下)

  2.3.2 配置pom.xml文件

  2.3.3 配置EditConfiguations的Maven启动方式

  命令:mybatis-generator:generate -e

2.4 解决@Repository标签注解报错问题

  2.4.1 @Repository标签改为@Mapper标签
        
  添加@Mapper注解之后,这个接口在编译时会生成相应的实现类。但请注意,这个接口中不可以定义同名的方法,因为会生成相同的id,因此这个接口不支持重载。这样做虽然能解决问题,但以后都要为每个Dao层的接口添加@Mapper注解

  2.4.2 不修改@Repository注解,在启动类中添加@MapperScan(“xxxx”)注解,用于扫描Mapper类的包。

  扫描多个包:@MapperScan({”com.zking.dao”,”com.zking.pojo”})
  

3.配置PageHelper分页插件

3.1 引入依赖

 <groupId>com.github.pagehelper</groupId>
 <artifactId>pagehelper-spring-boot-starter</artifactId>
 <version>1.2.3</version>

3.2 配置application.yml

#pagehelper分页插件配置
pagehelper:

 helperDialect: mysql
 reasonable: true
 supportMethodsArguments: true
 params: count=countSql

3.3 创建分页AOP

  注:必须开启动态代理

4.配置log日志

Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。

4.1 配置application.yml

#显示日志
logging:

 level: 
   com.zking.springboot01.mapper: debug


5.其他

5.1 SpringBoot启动项配置:

//自动扫描Mapper目录
@MapperScan("com.zking.项目名.mapper")
//启用事物管理器
@EnableTransactionManagement
//启用动态代理
@EnableAspectJAutoProxy

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
6月前
|
前端开发 Java 测试技术
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestParam
本文介绍了 `@RequestParam` 注解的使用方法及其与 `@PathVariable` 的区别。`@RequestParam` 用于从请求中获取参数值(如 GET 请求的 URL 参数或 POST 请求的表单数据),而 `@PathVariable` 用于从 URL 模板中提取参数。文章通过示例代码详细说明了 `@RequestParam` 的常用属性,如 `required` 和 `defaultValue`,并展示了如何用实体类封装大量表单参数以简化处理流程。最后,结合 Postman 测试工具验证了接口的功能。
332 0
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestParam
|
6月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于 xml 的整合
本教程介绍了基于XML的MyBatis整合方式。首先在`application.yml`中配置XML路径,如`classpath:mapper/*.xml`,然后创建`UserMapper.xml`文件定义SQL映射,包括`resultMap`和查询语句。通过设置`namespace`关联Mapper接口,实现如`getUserByName`的方法。Controller层调用Service完成测试,访问`/getUserByName/{name}`即可返回用户信息。为简化Mapper扫描,推荐在Spring Boot启动类用`@MapperScan`注解指定包路径避免逐个添加`@Mapper`
293 0
|
6月前
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestBody
`@RequestBody` 是 Spring 框架中的注解,用于将 HTTP 请求体中的 JSON 数据自动映射为 Java 对象。例如,前端通过 POST 请求发送包含 `username` 和 `password` 的 JSON 数据,后端可通过带有 `@RequestBody` 注解的方法参数接收并处理。此注解适用于传递复杂对象的场景,简化了数据解析过程。与表单提交不同,它主要用于接收 JSON 格式的实体数据。
501 0
|
6月前
|
前端开发 Java 微服务
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@PathVariable
`@PathVariable` 是 Spring Boot 中用于从 URL 中提取参数的注解,支持 RESTful 风格接口开发。例如,通过 `@GetMapping(&quot;/user/{id}&quot;)` 可以将 URL 中的 `{id}` 参数自动映射到方法参数中。若参数名不一致,可通过 `@PathVariable(&quot;自定义名&quot;)` 指定绑定关系。此外,还支持多参数占位符,如 `/user/{id}/{name}`,分别映射到方法中的多个参数。运行项目后,访问指定 URL 即可验证参数是否正确接收。
318 0
|
6月前
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestMapping
@RequestMapping 是 Spring MVC 中用于请求地址映射的注解,可作用于类或方法上。类级别定义控制器父路径,方法级别进一步指定处理逻辑。常用属性包括 value(请求地址)、method(请求类型,如 GET/POST 等,默认 GET)和 produces(返回内容类型)。例如:`@RequestMapping(value = &quot;/test&quot;, produces = &quot;application/json; charset=UTF-8&quot;)`。此外,针对不同请求方式还有简化注解,如 @GetMapping、@PostMapping 等。
278 0
|
3月前
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
594 1
Spring boot 使用mybatis generator 自动生成代码插件
|
3月前
|
Java 数据库连接 API
Java 对象模型现代化实践 基于 Spring Boot 与 MyBatis Plus 的实现方案深度解析
本文介绍了基于Spring Boot与MyBatis-Plus的Java对象模型现代化实践方案。采用Spring Boot 3.1.2作为基础框架,结合MyBatis-Plus 3.5.3.1进行数据访问层实现,使用Lombok简化PO对象,MapStruct处理对象转换。文章详细讲解了数据库设计、PO对象实现、DAO层构建、业务逻辑封装以及DTO/VO转换等核心环节,提供了一个完整的现代化Java对象模型实现案例。通过分层设计和对象转换,实现了业务逻辑与数据访问的解耦,提高了代码的可维护性和扩展性。
162 1
|
2月前
|
SQL Java 数据库连接
Spring、SpringMVC 与 MyBatis 核心知识点解析
我梳理的这些内容,涵盖了 Spring、SpringMVC 和 MyBatis 的核心知识点。 在 Spring 中,我了解到 IOC 是控制反转,把对象控制权交容器;DI 是依赖注入,有三种实现方式。Bean 有五种作用域,单例 bean 的线程安全问题及自动装配方式也清晰了。事务基于数据库和 AOP,有失效场景和七种传播行为。AOP 是面向切面编程,动态代理有 JDK 和 CGLIB 两种。 SpringMVC 的 11 步执行流程我烂熟于心,还有那些常用注解的用法。 MyBatis 里,#{} 和 ${} 的区别很关键,获取主键、处理字段与属性名不匹配的方法也掌握了。多表查询、动态
112 0
|
3月前
|
SQL Java 数据库
解决Java Spring Boot应用中MyBatis-Plus查询问题的策略。
保持技能更新是侦探的重要素质。定期回顾最佳实践和新技术。比如,定期查看MyBatis-Plus的更新和社区的最佳做法,这样才能不断提升查询效率和性能。
162 1
|
6月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
527 0