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