<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
@Configuration public class SchedulerConfiguration
{
@Bean public LockProvider lockProvider(JedisPool jedisPool)
{
return new JedisLockProvider(jedisPool);
}
}
您必须将Spring配置为使用redis
,并且在使用spring-data-redis
时应该使用redistemplate
。使用该模板可以提供简单的配置,并支持在Spring应用程序中快速设置和使用redis。
如果您使用的是基于注释的配置,配置应该是这样的
package test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericToStringSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
@ComponentScan("test") // Component Scan Base Package
public class RedisConfiguration{
// Better if you can use a properties file and inject these values
private String redisHost = "localhost";
private int redisPort = 6379;
@Bean
JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName(redisHost);
factory.setPort(redisPort);
factory.setUsePool(true);
return factory;
}
@Bean
RedisTemplate< String, Object > redisTemplate() {
final RedisTemplate< String, Object > template = new RedisTemplate< String, Object >();
template.setConnectionFactory( jedisConnectionFactory() );
template.setKeySerializer( new StringRedisSerializer() );
template.setHashValueSerializer( new GenericToStringSerializer< Object >( Object.class ) );
template.setValueSerializer( new GenericToStringSerializer< Object >( Object.class ) );
return template;
}
}
然后在服务中使用
@Service
public class RedisService {
@Autowired
private RedisTemplate< String, Object > template;
// Methods to add and get objects from redis goes here
}
public class MainClassTest{
public static void main(String... args) throws InterruptedException {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(RedisConfiguration.class);
RedisService redisService = context.getBean(RedisService.class);
// Use the service here
}
}
描述:com.mongotest.demo.seeder中构造函数的参数0需要类型为“com.mongotest.repositories.studentrepository”的bean,但找不到该bean。 pom.xml
我有一个Java Spring Boot项目,我正在其中创建一个post请求。代码如下所示: 主要: 但是,当我运行该项目时,我会得到以下错误: 感谢您对此的任何帮助!非常感谢,
下午好,我正在尝试使用Spring Boot运行SOAP服务,但出现以下错误: 应用程序启动失败 描述: 我知道也许这应该是个愚蠢的错误,但我看不出来 附件MI代码: SpringBootSoapApp.java ClienteServiceImpl.java client.xsd 应用程序.属性 我的项目结构 我试图遵循以下示例:https://www.javaspringclub.com/pu
我计划将所有DAO层代码分解到一个单独的Spring boot data项目中。因此,我创建了两个项目,其中一个将具有所有数据库相关代码,另一个将具有服务代码,然后使用第一个项目作为依赖项来交互任何数据库相关操作。 Project1:DatabaseInteractionService Project2:InsuranceCleanupService InsuranceCleanupService
我得到以下错误: 我以前从未见过这个错误,但奇怪的是@autowire不能工作。以下是项目结构: 申请者界面 应用程序 现在我应该能够自动连接申请者并能够访问,但是在这种情况下,当我在中调用它时,它就不起作用了 ---------------更新1-------------------------------- 我添加了 错误消失了,但什么也没有发生。但是,当我在添加之前注释掉了中与有关的所有内容