


Comment utiliser les annotations @Configuration et @bean dans Springboot
May 12, 2023 pm 02:46 PM@L'annotation de configuration peut obtenir l'effet d'utiliser des fichiers de configuration XML dans Spring
@Bean est équivalent au <bean> dans le fichier de configuration XML
Dans le projet Spring, nous intégrons des frameworks tiers tels que Shiro et il sera utilisé au printemps Configurez dans le fichier de configuration .xml, par exemple :
<!-- 配置shiro框架提供过滤器工厂 --> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <!-- 注入shiro核心组件安全管理器 --> <property name="securityManager" ref="securityManager"></property> <!-- 注入相关页面 --> <property name="loginUrl" value="/login.jsp"></property> <property name="unauthorizedUrl" value="/unauthorized.jsp"></property> <!-- 配置过滤器链:配置项目发出url对应拦截规则:指定什么url要求具有什么样权限 --> <property name="filterChainDefinitions"> <value> /css/**=anon /js/**=anon /validatecode.jsp*=anon /images/**=anon /login.jsp=anon /service/**=anon /**=authc </value> </property> </bean> <!-- 配置安全管理器 --> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realms" ref="bosRealm"></property> <!-- 使用缓存 --> <property name="cacheManager" ref="cacheManager"></property> </bean> <!-- 配置缓存管理器--> <bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager"> <!-- 加载ehcache的配置文件,指定缓存策略 --> <property name="cacheManager" ref="ehcacheManager"></property> </bean> <!-- 开启shiro注解支持 --> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"> <!-- 强制使用cglib代理 --> <property name="proxyTargetClass" value="true"></property> </bean> <!-- 配置切面 目的验权,判断当前用户是否有权限调用service层方法 --> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"></bean>
Intégrez springboot avec shiro :
@Configuration public class ShiroConfig { @Bean public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) { ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); shiroFilterFactoryBean.setSecurityManager(securityManager); Map<String, String> filterChainDefinitionMap = new HashMap<String, String>(); shiroFilterFactoryBean.setLoginUrl("/login"); shiroFilterFactoryBean.setUnauthorizedUrl("/unauthc"); shiroFilterFactoryBean.setSuccessUrl("/home/index"); filterChainDefinitionMap.put("/*", "anon"); filterChainDefinitionMap.put("/authc/index", "authc"); return shiroFilterFactoryBean; } @Bean public HashedCredentialsMatcher hashedCredentialsMatcher() { HashedCredentialsMatcher hashedCredentialsMatcher = new HashedCredentialsMatcher(); hashedCredentialsMatcher.setHashAlgorithmName(PasswordHelper.ALGORITHM_NAME); hashedCredentialsMatcher.setHashIterations(PasswordHelper.HASH_ITERATIONS); return hashedCredentialsMatcher; } @Bean public EnceladusShiroRealm shiroRealm() { EnceladusShiroRealm shiroRealm = new EnceladusShiroRealm(); shiroRealm.setCredentialsMatcher(hashedCredentialsMatcher()); return shiroRealm; } @Bean public SecurityManager securityManager() { DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager(); securityManager.setRealm(shiroRealm()); return securityManager; } @Bean public PasswordHelper passwordHelper() { return new PasswordHelper(); } }
@L'annotation de configuration peut obtenir l'effet d'utiliser des fichiers de configuration XML au printemps.
@Bean est équivalent à <bean>
dans le fichier de configuration XMLCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment Springboot intègre Jasypt pour implémenter le chiffrement des fichiers de configuration

Comment utiliser Redis pour implémenter des verrous distribués dans SpringBoot

Comment SpringBoot intègre Redisson pour implémenter la file d'attente différée

Comment résoudre le problème selon lequel Springboot ne peut pas accéder au fichier après l'avoir lu dans un package jar

Comparaison et analyse des différences entre SpringBoot et SpringMVC

Comment SpringBoot personnalise Redis pour implémenter la sérialisation du cache

Comment obtenir la valeur dans application.yml au Springboot

Comment implémenter Springboot+Mybatis-plus sans utiliser d'instructions SQL pour ajouter plusieurs tables
