一个独立的模块必须由版本号,groupId,artifactId,(除非由父模块支撑)。
TestUser.class
package com.itheima.my;
import lombok.Data;
//写一个配置类,加载TestUser,使用自动配置的方式实现只需要加载这个jar自动让配置类生效
@Data
public class TestUser {
private String username;
}
TestConfig.class
package com.itheima.my;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class TestConfig {
@Bean
public TestUser testUser(){
TestUser testUser = new TestUser();
testUser.setUsername("张三");
return testUser;
}
}
resource目录下的META-INF/spring.factories录入
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.itheima.my.TestConfig
pom.xml
<groupId>springboot-demo</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>my-autoConfiguration</artifactId>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.6.6</version>
<scope>compile</scope>
</dependency>
父工程引入依赖
<dependency>
<groupId>springboot-demo</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>my-autoConfiguration</artifactId>
</dependency>
测试
public static void main(String[] args) {
ConfigurableApplicationContext run
= SpringApplication.run(DemoApplication.class, args);
TestUser testUser = run.getBean(TestUser.class);
System.out.println(testUser);
引入三种方式:
1. 通过META-INF/spring.factories下设置自动配置文件,
2. 通过@Configuration和在启动类扫描包上添加com.itheima.my,来注入对象
3. 在启动类上加入@Import(TestConfig.class)
TestProperties.class
package com.itheima.my;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@Data
@ConfigurationProperties(prefix = "test.my")
public class TestProperties {
private String username;
}
package com.itheima.my;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableConfigurationProperties(TestProperties.class)
public class TestConfig {
@Bean
public TestUser testUser(TestProperties testProperties){
TestUser testUser = new TestUser();
testUser.setUsername(testProperties.getUsername());
return testUser;
}
}
修改打包方式为 jar ,才可以加载配置文件
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
导入依赖
<dependency>
<groupId>com.example</groupId>
<version>0.0.1-SNAPSHOT</version>
<artifactId>myauto</artifactId>
</dependency>
==========================
项目提示依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<version>2.6.6</version>
<optional>true</optional>
</dependency>
写一个配置类,加载TestUser,使用自动配置的方式实现只需要加载这个jar自动让配置类生效
最新推荐文章于 2022-10-10 14:53:26 发布