@Bean 和@Autowired 组合使用
admin
2024-05-02 00:31:30
0

@Bean 基础概念

  • @Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中;

  • SpringIOC 容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理;

  • @Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的bean的id为方法名;

  • 使用Bean时,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装;比如@Autowired , @Resource,可以通过byTYPE(@Autowired)、byNAME(@Resource)的方式获取Bean;

  • 注册Bean时,@Component , @Repository , @ Controller , @Service , @Configration这些注解都是把你要实例化的对象转化成一个Bean,放在IoC容器中,等你要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法完美组装;

@Autowired 基础概念

        @Autowired 可以将spring ioc 中的bean(例如@Bean 注解创建的bean)的实例获取。

举个例子

一,使用@Bean 在某个方法上,产生一个bean 对象。

@Configuration
public class TokenConfig {/*** @Bean 注解是告诉该方法产生一个bean 对象,然后将该对象交给spring管理,产生这个bean 对象的方法spring 只会调用一次。随后spring会将这个bean对象放在自己的ioc容器中。*/@Beanpublic TokenStore tokenStore() {//JWT令牌存储方案return new JwtTokenStore();}
}

二,使用@Autowired注解,将在spring 中的bean 对象获取到TokenStore

@Configuration
@EnableAuthorizationServer
public class AuthorizationServer extends AuthorizationServerConfigurerAdapter {@Autowiredprivate TokenStore tokenStore;public AuthorizationServerTokenServices tokenService() {DefaultTokenServices service=new DefaultTokenServices();//客户端详情服务service.setClientDetailsService(clientDetailsService);//支持刷新令牌service.setSupportRefreshToken(true);//令牌存储策略service.setTokenStore(tokenStore);//这一行的tokenStore//令牌增强TokenEnhancerChain tokenEnhancerChain = new TokenEnhancerChain();tokenEnhancerChain.setTokenEnhancers(Arrays.asList(accessTokenConverter));service.setTokenEnhancer(tokenEnhancerChain);// 令牌默认有效期2小时service.setAccessTokenValiditySeconds(7200);// 刷新令牌默认有效期3天service.setRefreshTokenValiditySeconds(259200);return service;}
}

        service.setTokenStore(tokenStore);//这一行的tokenStore的意思和

        service.setTokenStore(new JwtTokenStore); 是一样的。

使用 @Autowired 引入TokenStore 类就可以获取我们使用@Bean对该对象设置的实例了。

注意,不用管TokenStore 是 interface还是class.都可以被@Bean 调用

相关内容

热门资讯

家用监控App推荐大全 202... 家庭安防日益成为现代生活的重要组成部分,如何通过智能手段守护住宅安全、防范意外风险,是许多用户关注的...
免费好用的画画App推荐|功能... 如今,数字绘画已不再局限于专业设备或固定场所,各类免费绘图应用让创作变得轻便灵活。无论你是初学涂鸦的...
小轿车送货接单软件推荐|实用好... 对于拥有私家车的用户而言,利用闲暇时间从事同城货运或即时配送,已成为一种灵活可靠的增收方式。既能提高...
自动生成PPT的软件推荐 自动... 在日常办公场景中,PowerPoint(PPT)作为核心演示工具,使用频率持续走高。然而,不少职场新...
桌面应用下载排行榜 2024年... 想要提升安卓手机的日常使用效率,同时让桌面界面更具个性与美感?一款优秀的桌面工具类应用必不可少。本文...
歌曲制作软件推荐|适合新手与专... 手机端音乐创作与编辑工具有哪些?不少用户希望在移动设备上完成基础的音频处理任务,例如旋律捕捉、片段剪...
好用的阅读软件推荐 实用高效且... 哪些阅读类APP既实用又资源丰富?如今,数字阅读已成为许多人日常放松的重要方式,但面对琳琅满目的阅读...
小说阅读软件推荐|支持下载功能... 哪些阅读类APP支持小说离线下载?小说作为广受欢迎的文学形式,从古代的话本、章回体到现代的网络连载,...
看球直播APP推荐 值得下载的... 如今,体育赛事直播已成为大众关注的热点,尤其在足球、篮球、网球等热门项目开赛期间,用户对稳定、高清、...
《狂战传说》新手上手指南与战斗... 第1页:按键操作与界面介绍展开《狂战传说》大家了解这代的战斗系统了吗?今天就为大家带来了狂战传说新手...