package com.qianwen.core.secure.config; import com.qianwen.core.secure.handler.BladePermissionHandler; import com.qianwen.core.secure.handler.IPermissionHandler; import com.qianwen.core.secure.handler.ISecureHandler; import com.qianwen.core.secure.handler.SecureHandlerHandler; import com.qianwen.core.secure.registry.SecureRegistry; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.jdbc.core.JdbcTemplate; @AutoConfigureBefore({SecureConfiguration.class}) @Configuration(proxyBeanMethods = false) @Order public class RegistryConfiguration { private final JdbcTemplate jdbcTemplate; public RegistryConfiguration(final JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @ConditionalOnMissingBean({SecureRegistry.class}) @Bean public SecureRegistry secureRegistry() { return new SecureRegistry(); } @ConditionalOnMissingBean({ISecureHandler.class}) @Bean public ISecureHandler secureHandler() { return new SecureHandlerHandler(); } @ConditionalOnMissingBean({IPermissionHandler.class}) @Bean public IPermissionHandler permissionHandler() { return new BladePermissionHandler(this.jdbcTemplate); } }