微服务
简化部署
配置依赖:
<build>
<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build>
将这个应用打包成jar包,可以直接使用java -jar 命令运行。 ##POM文件
父项目
<parent>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> <relativePath/> </parent>
上面的父项目是
<parent>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.4.RELEASE</version></parent>
它来管理SpringBoot应用里的所有依赖版本
启动器
<dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>
spring-boot-starter-web: spring-boot-starter是springboot的场景启动器,帮我们导入web依赖。
SpringBoot将所有的功能场景都一个个的抽取出来,成为starts(启动器),只需要在项目总引入这些start,相关功能场景的所以依赖都会打入进来。
主启动类,主入口类
@SpringBootApplication
public class SpringbootDemo1Application {
public static void main(String[] args) { SpringApplication.run(SpringbootDemo1Application.class, args); }
}
@SpringBootApplication:此注解标注的类,就是SpringBoot的主配置类,SpringBoot就是通过这个类的main方法启动应用。
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class}), @Filter(
type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class})}
)
public @interface SpringBootApplication {
@SpringBootConfiguration:SpringBoot的配置类
@Configuration: 标注的类为配置类
- @Component:
@EnableAutoConfiguration:开启自动配置功能
- @AutoConfigurationPackage:自动配置包
- @Import({AutoConfigurationImportSelector.class})
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
将主配置类所在包下及子包下里的说有组件扫描到spring容器
AutoConfigurationImportSelector 导入哪些组件的选择器
SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());
SpringBoot在启动的时候从类路径下的META-INF/spring.factories中获取AutoConfiguration指定的值,将这些值作为自动装配类导入到容器中,自动装配类就生效
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。