一.springboot概述
-
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。使用Spring Boot可以做到专注于Spring应用的开发,而无需过多关注XML的配置。Spring Boot使用“习惯优于配置”的理念,简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。使用Spring Boot可以不用或者只需要很少的Spring配置就可以让企业项目快速运行起来。
-
Spring Boot是开发者和Spring 本身框架的中间层,帮助开发者统筹管理应用的配置,提供基于实际开发中常见配置的默认处理(即习惯优于配置),简化应用的开发,简化应用的运维;总的来说,其目的Spring Boot就是为了对Java web 的开发进行“简化”和加“快”速度,简化开发过程中引入或启动相关Spring 功能的配置。这样带来的好处就是降低开发人员对于框架的关注点,可以把更多的精力放在自己的业务代码上。同时随着微服务概念的推广和实践,Spring Boot的精简理念又使其成为Java微服务开发的不二之选,也可以说,Spring Boot其实就是为了微服务而生的Java web框架。
二. springboot的核心功能
可独立运行的Spring项目:Spring Boot可以以jar包的形式独立运行。
内嵌的Servlet容器:Spring Boot可以选择内嵌Tomcat、Jetty或者Undertow,无须以war包形式部署项目。
简化的Maven配置:Spring提供推荐的基础 POM 文件来简化Maven 配置。
自动配置Spring:Spring Boot会根据项目依赖来自动配置Spring 框架,极大地减少项目要使用的配置。
提供生产就绪型功能:提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。
无代码生成和xml配置:Spring Boot不生成代码。完全不需要任何xml配置即可实现Spring的所有配置。
三. springboot的相关好处
-
以往的项目整合起来是比较繁琐复杂的,而且存在架包冲突的问题,这时候SpringBoot应运而生了,SpringBoot也就是用来做这个的。
-
SpringBoot是一个快速开发的框架,能过快速整合第三方框架,他是如何快速整合的呢?其实他是的基本原来是Maven依赖关系,Maven的集成,完全采用注解化,简化XML配置,内嵌HTTP服务器(Tomcate,jetty),默认嵌入Tomcate,最终以Java应用程序进行执行。
四. 如何快速使用idea开发工具来配置一个MAVEN项目(体验)
-
配置pom.xml文件添加相关依赖JAR包(父类配置2.X为了后面的SpringCloud)
<!-- Inherit defaults from Spring Boot --> <!--所有的springboot项目都需要继承父类--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> </parent> <!-- Add typical dependencies for a web application --> <!--web项目的启动器--> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <!--配置测试依赖包和对应的junit测试单元--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency>
-
创建对应的控制器TestController和对应的里面的代码
-
@RestController @RequestMapping("/") public class TestController { @RequestMapping("/index") public String index(){ return "hello Springboot"; } }
-
编写对应的引导类注意,要和controller在同一个级别目录下
-
@SpringBootApplication public class SpringbootTestApplication { public static void main(String[] args) { SpringApplication.run(SpringbootTestApplication.class,args); } }
-
启动成功后,控制台会进行相应的信息的输出以及对应的端口号的显示http://localhost:8080/index
-
在resources资源文件夹下新建一个file application.properties文件
-
在里面进行相关的配置项目名字和端口号的配置
-
server.port=9999 server.servlet.context-path=/springboot
-
如果是yml文件application.yml
-
server: port: 9999 servlet: context-path: /springboot
五.yml(yml文件介绍)
一种基于Unicode容易阅读,容易和脚本语言交互的,用来表达资料序列的编程语言。适应场景 脚本语言:由于实现简单,解析成本很低,YAML 特别适合在脚本语言中使用 序列化: YAML是由宿主语言数据类型直转,的比较适合做序列化。 配置文件:写 YAML 要比写 XML 快得多(无需关注标签或引号),并且比 INI 文档功能更强。由于兼容性问题,不同语言间的数据流转建议不要用 YAML。 语言优点 YAML易于人们阅读。 YAML数据在编程语言之间是可移植的。 YAML匹配敏捷语言的本机数据结构。 YAML具有一致的模型来支持通用工具。 YAML支持单程处理。 YAML具有表现力和可扩展性。 YAML易于实现和使用。 YAML 语法 使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不能使用 Tab,各个系统 Tab对应的 Space 数目可能不同,导致层次混乱) ‘#’表示注释,只能单行注释,从#开始处到行尾 破折号后面跟一个空格(a dash and space)表示列表 用冒号和空格表示键值对 key: value 简单数据(scalars,标量数据)可以不使用引号括起来,包括字符串数据。用单引号或者双引号括起来的被当作字符串数据,在单引号或双引号中使用C风格的转义字符 Sequence of Scalars 简单数据列表
-
利用yml文件添加对应的数据进行解析
-
person: username: admin password: 123456 #配置数组集合 city: - beijing - tianjing - chongqing #country: [beijing,wuhan] person: username: admin password: 123456 food: kfc #配置数组集合(对象) student: - name: tom age: 12 addr: beijing - name: jim age: 23 addr: tianjing teacher: [{name: jim,age: 13,addr: beijing},{name: kkk,age: 12,addr: wuhan}] map: key1: value1 key2: value2 person: name: admin age: 12 addr: wuhan
-
<!--添加执行器--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
-
单一解析yml里面的一个key文件
package com.chinasoft.springbootTest.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.jdbc.JdbcProperties; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/") public class TestController { private static final Logger log= LoggerFactory.getLogger(TestController.class); @Value("${food}") private String food; @RequestMapping("/index") public String index(){ // log.info(jdbc.getUsername()); //log.info(jdbc.getPassword()); return "hello Springboot"+food; } public String getFood() { return food;