springboot yml 设置redis用户名 springboot自定义redis配置 |
您所在的位置:网站首页 › 智能快递柜技术问题 › springboot yml 设置redis用户名 springboot自定义redis配置 |
自定义一个Springboot自动装配Redis-starterspring时代整合redisspringboot 实现自动装配redis1、新建两个项目:一个autoconfig一个starter项目2、添加 autoconfig 项目中的pom文件如下:3、starter 项目中pom 只需添加autoconfig依赖即可。4、autoconfig项目中创建一个包configuration、再创建一个RedisConfiguration类。5、创建properties配置文件加载类6、创建redis操作模板类7、Redis对外出口配置类8、springboot优雅扩展的入口9、demo使用自定义starter10、全剧终帮个忙走个关注 蟹蟹各位大哥大姐 spring时代整合redis spring我相信只要是一个Java开发人员我相信再熟悉不过了,几乎垄断了整个JavaEE的市场份额,话不多说进入正题。 首先看看我们在spring中整合redis需要做什么 1、首先maven工程的话不用想先导入依赖 redis.clients jedis 2.4.2 org.springframework.data spring-data-redis 1.4.2.RELEASE2、在spring-xml中配置 ....... 这里省略一些更多配置 4、这样子以后我们就可以在业务层通过 @Autowired 引用redis操作模板了 @Autowired RedisTemplate redisTemplate;3、上面就是spring使用redis的大致流程。 这样子看起来也还好啊? 但是每个项目都要去经过这么一系列繁琐的xml配置,这就是重复工作了。这时候就出现了“springboot” 就是专门去做这些整合的事情了,让我们不需要整合这些只需几行基础配置即可。springboot 实现自动装配redis在开始spring boot之前我们首先要来看几个注解,spring boot实现自定义装配的核心就是这几个注解: 1、@Import:Import注解的主要的作用是将bean导入到spring容器中,比如说要自定义一些bean交spring容器托管,这是我们就可以建一个配置类使用import注解专门去导入你自定义的一些bean到spring容器中。 2、@Bean:Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。 3、@Component:通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中。 4、@Configuration:来声明一个spring的配置类等同于spring中的xml文件,ConfigurationClassPostProcessor::enhanceConfigurationClasses这个方法是Configuration注解工作的核心方法,spring应用启动时所有的被@Configuration注解的类都会被spring cglib库生成cglib动态代理,然后其他地方通过@Autowired注解引入Student类对象就会被生成的configuration配置类生成的动态代理拦截,处理完后再调用原configuration注解类的student方法获取到Student实例。 5、@Conditiona:个人感觉主要是做一些判断条件的、只有当condition的machet匹配方法为 true 的时候【该方法内也是我们实现一些自定义逻辑判断的扩展点】,才会去加载该bean 否则不加载该bean。----- condition又繁衍出很多子类(方便我们直接使用) @ConditionalOnMissingBean:当容器下有当前这个bean就不加载没有则加载 @ConditionalOnExpression:当括号中的内容为true时,使用该注解的类被实例化。 示例: @ConditionalOnExpression("KaTeX parse error: Expected 'EOF', got '&' at position 25: …mer.enabled}==1&̲&{rabbitmq.comsumer.enabled:true}") @ConditionalOnExpression("’${mq.comsumer}’.equals(‘rabbitmq’)") @ConditionalOnClass:当classpath下有某个class的时候,就执行下面操作 @ConditionalOnBean:只有当给定的bean存在时、则实例化当前bean。 1、新建两个项目:一个autoconfig一个starter项目注:【maven项目即可】。 starter:主要是做让其他项目依赖的start。 autoconfig:实现具体自动装配逻辑处理。 这里其实也可以 RedisConfiguration 类中注入到spring容器中,但是为了职责划分就单独使用。 package org.xing.modules.template; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; /** * TODO: Redis Template Configuration Class * * @author Created by mr_zhou on 2020/10/12 */ @Configuration public class RedisTemplateConfiguration { @Bean @ConditionalOnMissingBean public RedisTemplate redisTemplate(JedisConnectionFactory jedisConnectionFactory){ RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setConnectionFactory(jedisConnectionFactory); return redisTemplate; } // 更多模板注入..... }7、Redis对外出口配置类该类主要作用于spring容器加载入口 package org.xing.modules.configuration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisOperations; import org.springframework.data.redis.core.RedisTemplate; import org.xing.modules.template.RedisTemplateConfiguration; /** * TODO redis exposes export configuration class to the outside world * TODO:只有当 classpath 路径下发现 RedisOperations 类才会进行导入@Import下的配置类进入容器 * * @author Created by John on 2020/10/12 */ @ConditionalOnClass(RedisOperations.class) @Import(value = {RedisConfiguration.class,RedisProperties.class, RedisTemplateConfiguration.class}) public class RedisAutoConfiguration { }8、springboot优雅扩展的入口我们打开springboot自动配置jar里面的源码: springboot自动装配主要是扫描 【META-INF 下的 spring.factories 文件下 # Auto Configure】下的所有类 因此我们照葫芦画瓢【在starter下创建META-INF 再创建spring.factories】 让后在maven里面先后 autoconfig -> starter install一下。 1、在demo项目中加入自定义starter的依赖 2、最后就可以直接在项目中注入使用redis。 【pom里面可以看到我们没有加任何redis依赖的只加了自定义的starter】 /** * @author Created by mr_zhou on 2020/10/12 */ public class MyService { @Autowired private RedisTemplate redisTemplate; }3、配置redis连接信息即可操作 - 对应 RedisProperties 属性。 最后我们就可以慢慢完善自己的starter做到以后直接使用自己的redis封装一些常用的操作。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |