一个父项目两个子项目 A与B,父项目与B没有启动类,A有启动类,B是A的依赖,A的redis配置类想放在B中,启动A直接生效,如何实现
时间: 2023-08-07 08:06:34 浏览: 67
可以通过在子项目B中创建一个自动配置类来实现,自动配置类中注入redis相关的配置,然后在子项目A中引入B依赖即可。具体步骤如下:
1. 在子项目B中创建一个自动配置类,例如RedisAutoConfiguration。
2. 在自动配置类中注入redis相关的配置,例如:
```java
@Configuration
public class RedisAutoConfiguration {
@Value("${redis.host}")
private String host;
@Value("${redis.port}")
private int port;
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setHostName(host);
jedisConnectionFactory.setPort(port);
return jedisConnectionFactory;
}
}
```
3. 在子项目A的启动类中加上@EnableAutoConfiguration注解,让Spring Boot自动配置。
4. 在子项目A的pom.xml中引入子项目B的依赖,例如:
```xml
<dependency>
<groupId>com.example</groupId>
<artifactId>project-b</artifactId>
<version>${project.version}</version>
</dependency>
```
5. 在子项目A的application.properties中配置redis相关的属性,例如:
```properties
redis.host=localhost
redis.port=6379
```
这样,在子项目A启动时,自动配置类中注入的redis相关配置就会生效,从而实现在B中配置redis,A直接生效的效果。
阅读全文