一个父项目两个子项目 A与B,父项目与B没有启动类,A有启动类,B是A的依赖,A的redis配置类放在B中 未生效
时间: 2024-06-06 11:05:20 浏览: 51
可能是因为A与B的依赖关系没有正确配置导致的。请确认以下几点:
1. 父项目的 `pom.xml` 文件中是否正确声明了 A 和 B 的依赖关系,B 应该被声明为 A 的依赖。
2. 确认 A 项目的启动类是否正确引用了 B 项目的依赖。
3. 在 A 项目的配置文件中,确保正确引用了 Redis 配置类所在的包路径。如果这个包路径不正确,那么 Redis 配置类就不会被扫描到,从而导致配置不生效。
如果确认了以上几点,仍然无法解决问题,建议检查一下 Redis 配置类的代码是否存在问题。
相关问题
一个父项目两个子项目 A与B,父项目与B没有启动类,A有启动类,B作为A的依赖 如何将A的redis配置类放在B中
可以在B项目中创建一个`RedisConfig`类来配置Redis,然后在A项目的启动类上加上`@Import(RedisConfig.class)`注解来导入B项目中的`RedisConfig`配置类。
具体步骤如下:
1. 在B项目中创建`RedisConfig`类,配置Redis连接池等相关参数。
```java
@Configuration
public class RedisConfig {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
redisStandaloneConfiguration.setHostName("localhost");
redisStandaloneConfiguration.setPort(6379);
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(redisStandaloneConfiguration);
return jedisConnectionFactory;
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
}
```
2. 在A项目的启动类上加上`@Import(RedisConfig.class)`注解。
```java
@SpringBootApplication
@Import(RedisConfig.class)
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
这样就可以将B项目中的`RedisConfig`配置类导入到A项目中了,同时也保证了B项目可以作为A项目的依赖。
一个父项目两个子项目 A与B,父项目与B没有启动类,A有启动类,B作为A的依赖 如何将A的redis配置类放在B中生效
可以通过在B中引入A的启动类来让A的redis配置类生效。具体步骤如下:
1. 在B的pom.xml文件中添加对A的依赖。
```
<dependency>
<groupId>com.example</groupId>
<artifactId>A</artifactId>
<version>1.0.0</version>
</dependency>
```
2. 在B的pom.xml文件中添加对A的启动类的引入。
```
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.example.A.Application</mainClass>
</configuration>
</plugin>
</plugins>
</build>
```
3. 在B的配置文件中,配置redis相关的属性,并且在A的redis配置类上添加`@Configuration`注解。这样,在B启动时,会自动扫描A中的redis配置类,并且将其生效。
```
@Configuration
public class RedisConfig {
@Value("${spring.redis.host}")
private String host;
@Value("${spring.redis.port}")
private int port;
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(host, port);
return new JedisConnectionFactory(config);
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
return template;
}
}
```