一、helloworld二、自动配置原理
1. SpringBoot特点
1.1 依赖管理1.2 自动配置 2. 容器功能
组件添加配置绑定
一、helloworld官方文档
- 创建maven工程引入parent和依赖
org.springframework.boot spring-boot-starter-parent 2.6.3 org.springframework.boot spring-boot-starter-web
- 主程序
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class,args);
}
}
- controller
package org.kk.boot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
//@Controller
//@ResponseBody
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello world";
}
}
启动主程序
在resource下可以创建配置文件 application.properties ,该配置文件可以修改tomcat、springmvc的一些设置
比如:server.port=9090
创建可执行jar包
引入插件:
org.springframework.boot spring-boot-maven-plugin
maven-build-package进行打包
在target文件夹中。
进入target文件夹,执行jar包即可。
java -jar boot-01-helloworld-1.0-SNAPSHOT.jar
就可以启动了!直接在目标服务器执行
二、自动配置原理 1. SpringBoot特点 1.1 依赖管理父项目作依赖管理,几乎声明了所有开发中常用的jar版本号,因此在写依赖的时候不需要版本号了。 自动版本仲裁机制
可以自定义修改版本:
5.1.43
开发导入starter场景启动器
见到很多 spring-boot-starter-*
*代表某种场景
只要引入starter,这个场景的所有常规需要的依赖都自动引入
所有场景启动器最底层的依赖:spring-boot-starter
自动配好tomcat:引入Tomcat、配置Tomcat
自动配好SpringMVC全套组件
主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来,无需以前的包扫描
各种配置都有默认值
按需加载配置项
- @Configuration 和@bean@Bean、@Component、@Controller、@Service、@Repository@import
@import({User.class, DBHelper.class})
给容器中自动创建出这两个类型的组件、默认组件的名字就是全类名
@import({User.class, DBHelper.class})
@Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件
public class MyConfig {
}
@Conditional
满足condition指定的条件进行组件注入
将resource下的xml文件导入(针对老项目)
@importResource(“classpath:beans.xml”)
eg. Car类
package org.kk.boot.bean;
public class Car {
private String brand;
private Integer price;
@Override
public String toString() {
return "Car{" +
"brand='" + brand + ''' +
", price=" + price +
'}';
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public Integer getPrice() {
return price;
}
public void setPrice(Integer price) {
this.price = price;
}
}
现在想把Car有关的东西放到配置文件里:
mycar.brand=byd mycar.price=100000
放入容器中并使用@ConfigurationProperties
@Component @ConfigurationProperties(prefix = "mycar")
测试:controller:
@Autowired
Car car;
@GetMapping("/car")
public Car car(){
return car;
}
也可以再配置文件中写这个注解: @EnableConfigurationProperties(Car.class)



