SpringBoot简化开发搭建项目结构(敏捷开发),测试,运维
SpringBoot怎么实现简化
1)Maven jar的通一管理,jar的升级,版本冲突(高级程序员或架构师)
2)三大框架的xml配置文件,实现业界小目标:xml零配置(hibernate),没有真正消失(application.yml)配置量少了?怎么支持的呢?约定大于(优于)配置+注解(扫描子包,拿类的注解)
3)部署和运行,创建一个启动类,main函数作为入口函数。需要上下文环境@SpringBootApplication
关键词
1Spring 出品
2Boot 引导
SpringBoot why?为什么需要这个技术
Maven 开发时不好用。Maven开发中遇到的问题。
1电商大型架构统一管理jar包的系统-parent父工程(公用的jar包放到父工程统一继承),它的pom.xml极其不方便,先后有顺序,背后的原因是jar包有版本冲突问题。(SpringBoot帮你创建父工程)
2基于SSM三大框架的编程中,xml配置如mybatis-config.xml,applicationContext*.xml,springmvc-config.xml,web.xml,这些配置项太多,而且xml代码检查都没有,只有在运行期才报错。(SpringBoot不需配置xml)
3部署不方便:maven部署要打包(war包或jar包),如果不使用外部的中间件tomcat来运行web程序,如果使用Maven采用maven的Tomcat插件,要配置运行的命令(很死很简单,没有差别)。启动的时候慢。配置jdk的话javaWeb需配置3出。Java程序需配置2处。(SpringBoot运行方式更简洁,从main入口)
SpringBoot
1SpringBoot自己定义了一个工程,把主流公用的jar包管理起来。个性的jar包自己加。
2约定大于配置(少写代码),注解(少写代码),替代99%,例如db属性,application.yml(配置量极大减少-比属性文件表现方式更加好,kv,key树形结构)整个配置量大大减少。
3main函数,两句话解决,一个注解@SpringBootApplication
SpringApplication.run()
敏捷开发,开发效率更高,产生错误的几率变小
Springboot做业务还是基于三大框架
1变化
持久层,去掉mybatis-config.xml,在application.yml配置,在启动类上架注解@SpringBootApplication
扫描接口所在位置,创建接口的实现类
2业务层,代码不变,applicationContext*.xml全部消失
3application.yml只能用空格,不能用tab否则报如下错。kv的value前需要空格,用:
分割
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token
found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)
4r如果有相同的树枝必须合并到一起
server:
port: 8070
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/school
username: root
password: 123456
mybatis:
type-aliases-package: com.school.pojo
logging:
level:
com.school.mapper: debug
默认配置类autoconfig,出处
GradleProject是谷歌出的
支持不同的语言Java Kotlin Grovvy
不要用SNAPSHOP
Project Metadata元数据-描述数据的数据。描述系统的数据。
所有springboot的包类型为jar
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
所有spingboot程序都是子项目,都会继承父工程(springboot自身出品),RELEASE是正式发布的版本
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
强制规定编码类型,防止中文乱码,springboot支持新的技术,1.6,1.7废除,必须1.8及以上
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
包类型都是jar,利用上面的依赖标识javaWeb工程,内置中间件tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
这个加不加都可以
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
插件跟maven匹配,没有这个运行会报错
需要更新eclipse插件,eclipse出品过早,对新技术支撑不够,所以报错,修改麻烦。