简化Spring应用开发的一个框架;
整个Spring技术栈的一个大整合;
J2EE开发的一站式解决方案。
Spring Boot通过整合Spring整个技术栈,来简化企业级应用的开发。
Spring Boot自动配置。
微服务:架构风格
一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;
单体应用:ALL IN ONE
微服务:每一个功能元素最终都是一个可独立替换、可独立升级的微化单元。
详细参照微服务文档https://blog.csdn.net/jason_wang1989/article/details/88321698
一个功能:
浏览器发送hello请求,服务器接受请求并处理,响应HelloWorld字符串。
选择Maven工程,选择jdk1.8,创建后点击右下角的Enable Import Changes。
package com.ckh;
/*
* @SpringBootApplication来标注这是一个主程序类,说明这是一个SpringBoot应用
* */
@SpringBootApplication
public class SpringBootApplication {
public static void main(String[] args) {
//spring 应用启动起来
SpringApplication.run(SpringBootApplication,args);
}
}
package com.ckh.controller;
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello World!";
}
}
<build>
<plugins>
<plugin>
<groupId>org.spring.framework.bootgroupId>
<artifactId>spring-boot-maven-projectartifactId>
plugin>
plugins>
build>
点package即可打包成jar包,保存到target中。
<parent>
<groupId>org.spring.framework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.5.9 RELEASEversion>
parent>
Spring Boot 的版本仲裁中心;
以后我们导入依赖,默认是不需要写版本的;(没有在dependencies中管理的依赖自然要写上相应的版本)
<dependency>
<groupId>org.spring.framework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
spring-boot-starter-web:
spring-boot-starter: spring-boot场景启动器;帮我们导入了web模块正常运行所需要的组件;
Spring Boot 将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入相关的依赖,要用什么功能就只需要导入相应的启动器依赖。
package com.ckh;
/*
* @SpringBootApplication来标注这是一个主程序类,说明这是一个SpringBoot应用
* */
@SpringBootApplication
public class SpringBootApplication {
public static void main(String[] args) {
//spring 应用启动起来
SpringApplication.run(SpringBootApplication.class,args);
}
}
@SpringBootApplication注解:表明该类为主程序类,是整个应用的入口类,运行其中的main方法,将应用启动起来。
@SpringBootConfiguration: Spring boot 的配置类;
标注在某个类上,表示这是一个Spring boot的配置类;
@Configuration:配置类上来标注这个注解;
配置类—配置文件;配置类也是容器中的组件
@EnableAutoConfiguration:开启自动配置功能;
@AutoConfigurationPackage:自动配置包
@Import(AutoConfigurationPackage.Registrar.class);
Spring 的底层注解@import,给容器中导入一个组件;导入的组件由
AutoConfigurationPackage.Registrar.class决定。
将主配置类(@SpringBootApplication标注的类)所在包下面的所有子包里面的所有子类扫描到Spring容器中。
@Import(EnableAutoConfigurationImportSelector.class)
给容器导入组件:
EnableAutoConfigurationImportSelector.class:自动配置导入包的选择器
将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中。
会给容器中导入非常多的自动配置类:就是给容器中导入这个场景需要的所有组件,并配置好这些组件。
IDEA都支持使用Spring创建向导快速地创建一个springboot项目。
注意!!使用向导创建一定要连上网!!
1、New Project,点击Spring Initializer,选择jdk的版本。
2、填写包名、和项目名。
注意我这里包名里的“helloWorld”写错了,不能有大写字母!!
4、创建完成后,右下角会弹出一个小框,点击Enable Auto-Import,以后pom.xml文件修改时就会自动地导入依赖。
如果没有出现这个小框框,那么右键点击pom.xml文件–>Maven–>Reimport.
至此,一个初始版本地SpringBoot项目创建好了。
5、点击主程序,启动运行:
6、打开控制台窗口,若出现这两行表示运行成功:
首先,在主程序类的包下,新建一个package–controller,再创建一个类—HelloController。
package com.ckh.springboot01helloworldquick.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
/*
* @ResponseBody注解:表示该方法return的内容直接返回给浏览器
* @RequestMapping("/hello")注解:表示该方法接收浏览器“/hello”的请求
* */
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello,World!";
}
//RESTAPI的方式
}
还可以有另一种写法:
package com.ckh.springboot01helloworldquick.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/*
* 在类上面加@ResponseBody注解,表示整个类中方法的返回值都写回浏览器中。
* @RestController = @ResponseBody + @Controller
**/
//@ResponseBody
//@Controller
@RestController
public class HelloController {
/*
* @RequestMapping("/hello")注解:表示该方法接收浏览器“/hello”的请求
* */
@RequestMapping("/hello")
public String hello(){
return "Hello,World!";
}
//RESTAPI的方式
}
3、运行,浏览器中输入http://localhost:8080/hello即可访问。
默认生成的Spring Boot项目: