spring的优势:java
spring的JavaEE的轻量级代替品。无需开发重量级的EJB,spring为企业级java开发提供了一种相对简单的方法。经过依赖注入和面向切面编程,用简单的Java对象实现EJB的功能。mysql
spring的缺点:web
一、spring的组件代码是轻量级的,可是它的配置倒是重量级的。spring
二、在思考spring特性配置和解决业务问题之间须要进行思惟切换。sql
三、项目的依赖管理也是一件耗费时间和精力的事情。编程
SpringBootapi
springBoot对上述spring的缺点进行的改善和优化,基于约定优于配置的思想,可让开发人员没必要在配置和逻辑业务之间进行思惟的切换,全身心的投入到逻辑业务的代码编写中,从而大大提升了开发效率,必定程度上缩短了项目周期。安全
特色:springboot
一、为基于sprig的开发提供了更快的入门体验服务器
二、开箱即用,没有代码生成,也无需xml配置,同时能够修改默认值来知足特定的需求
三、提供了一些大型项目中常见的非功能性特性:例如嵌入式服务器,安全,指标,健康检测,外部配置等
四、springboot不是对spring功能上的加强,而是提供了一种快速使用spring的方式
核心功能:
一、起步依赖:将具有某种功能的坐标打包到一块儿,并提供一些默认的功能
二、自动配置:运行的过程当中,考虑了众多因素,才决定spring配置应该用哪一个,不应用哪一个,该过程上spring自动完成的。
入门案例:
一、导入MAVEN坐标
<!-- 全部的springboot工程都必须继承--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!--web功能起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.1.6.RELEASE</version> </dependency> <!--热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.15</version> </dependency> <!-- jpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
二、建立启动类
@SpringBootApplication//声明该类是一个springboot引导类 public class MySpringBootApplication { //main是java程序都入口 public static void main(String[] args) { //run方法表示要springboot的引导类,参数就是springboot引导类的字节码 SpringApplication.run(MySpringBootApplication.class); } }
配置文件:
springboot是基于约定的,因此不少配置都有默认值,但若是想使用本身的配置替换默认配置的话,就可使用application.properties或者application.yml(application.yaml)进行配置
yml配置文件:
YML文件格式是YAML编写的文件格式,YAML是一种直观的可以被电脑识别的数据序列化格式,而且容易被人类阅读,容易和脚本语言交互,能够被支持YAML库的不一样的编程语言程序导入。YML文件以数据为核心,比传统的xml方式更加简洁。
#普通数据配置 name: zhangsan #对象数据配置 person: name: zhangsan age: 18 addr: beijing server: port: 8082 #行内对象配置 student: {name: zhangsan,age: 18,addr: beijing} #配置数据、集合 city: - beijing - tianjin - chongqing - shanghai citys: [beijing,tianjin,chongqing,shanghai] students: - name: tom age: 18 addr: beijing - name: lucy age: 17 addr: tianjing studentss: [{name: tom,age: 18,addr: beijing},{name: lucy,age: 17,addr: tianjing}] map: key1: aaa key2: bbb