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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
11天前
|
缓存 前端开发 Java
【Spring】——SpringBoot项目创建
SpringBoot项目创建,SpringBootApplication启动类,target文件,web服务器,tomcat,访问服务器
|
2月前
|
监控 Java 数据库连接
详解Spring Batch:在Spring Boot中实现高效批处理
详解Spring Batch:在Spring Boot中实现高效批处理
225 12
|
2月前
|
安全 Java 测试技术
详解Spring Profiles:在Spring Boot中实现环境配置管理
详解Spring Profiles:在Spring Boot中实现环境配置管理
95 10
|
1月前
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
131 5
|
2月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
118 1
SpringBoot获取项目文件的绝对路径和相对路径
|
2月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
62 8
|
2月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
52 2
|
2月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
61 2
|
2月前
|
前端开发 Java Spring
SpringBoot项目thymeleaf页面支持词条国际化切换
SpringBoot项目thymeleaf页面支持词条国际化切换
83 2
|
2月前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
56 1