优化,使用 @Configuration(proxyBeanMethods = false) 提升启动速度

pull/13/MERGE
YunaiV 2022-11-12 20:27:51 +08:00
parent d87343d70c
commit bb2303e789
42 changed files with 42 additions and 43 deletions

View File

@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoBannerAutoConfiguration { public class YudaoBannerAutoConfiguration {
@Bean @Bean

View File

@ -17,7 +17,7 @@ import java.util.List;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoDataPermissionAutoConfiguration { public class YudaoDataPermissionAutoConfiguration {
@Bean @Bean

View File

@ -16,7 +16,7 @@ import java.util.List;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(LoginUser.class) @ConditionalOnClass(LoginUser.class)
@ConditionalOnBean(value = {PermissionApi.class, DeptDataPermissionRuleCustomizer.class}) @ConditionalOnBean(value = {PermissionApi.class, DeptDataPermissionRuleCustomizer.class})
public class YudaoDeptDataPermissionAutoConfiguration { public class YudaoDeptDataPermissionAutoConfiguration {

View File

@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoDictAutoConfiguration { public class YudaoDictAutoConfiguration {
@Bean @Bean

View File

@ -17,7 +17,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = "yudao.error-code", value = "enable", matchIfMissing = true) // 允许使用 yudao.error-code.enable=false 禁用访问日志 @ConditionalOnProperty(prefix = "yudao.error-code", value = "enable", matchIfMissing = true) // 允许使用 yudao.error-code.enable=false 禁用访问日志
@EnableConfigurationProperties(ErrorCodeProperties.class) @EnableConfigurationProperties(ErrorCodeProperties.class)
@EnableScheduling // 开启调度任务的功能,因为 ErrorCodeRemoteLoader 通过定时刷新错误码 @EnableScheduling // 开启调度任务的功能,因为 ErrorCodeRemoteLoader 通过定时刷新错误码

View File

@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.api.logger.OperateLogApi;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoOperateLogAutoConfiguration { public class YudaoOperateLogAutoConfiguration {
@Bean @Bean

View File

@ -11,7 +11,7 @@ import org.springframework.context.annotation.Configuration;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(PayProperties.class) @EnableConfigurationProperties(PayProperties.class)
public class YudaoPayAutoConfiguration { public class YudaoPayAutoConfiguration {

View File

@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoSmsAutoConfiguration { public class YudaoSmsAutoConfiguration {
@Bean @Bean

View File

@ -18,9 +18,9 @@ import org.springframework.context.annotation.Configuration;
* @author timfruit * @author timfruit
* @date 2021-10-30 * @date 2021-10-30
*/ */
@Slf4j @Configuration(proxyBeanMethods = false)
@Configuration
@EnableConfigurationProperties(JustAuthProperties.class) @EnableConfigurationProperties(JustAuthProperties.class)
@Slf4j
public class YudaoSocialAutoConfiguration { public class YudaoSocialAutoConfiguration {
@Bean @Bean

View File

@ -36,7 +36,7 @@ import org.springframework.integration.config.GlobalChannelInterceptor;
import java.util.Objects; import java.util.Objects;
@Configuration @Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = "yudao.tenant", value = "enable", matchIfMissing = true) // 允许使用 yudao.tenant.enable=false 禁用多租户 @ConditionalOnProperty(prefix = "yudao.tenant", value = "enable", matchIfMissing = true) // 允许使用 yudao.tenant.enable=false 禁用多租户
@EnableConfigurationProperties(TenantProperties.class) @EnableConfigurationProperties(TenantProperties.class)
public class YudaoTenantAutoConfiguration { public class YudaoTenantAutoConfiguration {

View File

@ -8,7 +8,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = "yudao.tenant", value = "enable", matchIfMissing = true) // 允许使用 yudao.tenant.enable=false 禁用多租户 @ConditionalOnProperty(prefix = "yudao.tenant", value = "enable", matchIfMissing = true) // 允许使用 yudao.tenant.enable=false 禁用多租户
@EnableFeignClients(clients = TenantApi.class) // 主要是引入相关的 API 服务 @EnableFeignClients(clients = TenantApi.class) // 主要是引入相关的 API 服务
public class YudaoTenantRpcAutoConfiguration { public class YudaoTenantRpcAutoConfiguration {

View File

@ -8,7 +8,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoCaptchaConfiguration { public class YudaoCaptchaConfiguration {
static { static {

View File

@ -18,7 +18,7 @@ import java.util.List;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(EnvProperties.class) @EnableConfigurationProperties(EnvProperties.class)
public class YudaoEnvRpcAutoConfiguration { public class YudaoEnvRpcAutoConfiguration {

View File

@ -13,7 +13,7 @@ import org.springframework.context.annotation.Configuration;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
@EnableConfigurationProperties(EnvProperties.class) @EnableConfigurationProperties(EnvProperties.class)
public class YudaoEnvWebAutoConfiguration { public class YudaoEnvWebAutoConfiguration {

View File

@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoFileAutoConfiguration { public class YudaoFileAutoConfiguration {
@Bean @Bean

View File

@ -6,7 +6,7 @@ import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoFlowableConfiguration { public class YudaoFlowableConfiguration {
/** /**

View File

@ -11,7 +11,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
/** /**
* Configuration * Configuration
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@EnableAsync @EnableAsync
public class YudaoAsyncAutoConfiguration { public class YudaoAsyncAutoConfiguration {

View File

@ -16,7 +16,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(XxlJobSpringExecutor.class) @ConditionalOnClass(XxlJobSpringExecutor.class)
@ConditionalOnProperty(prefix = "xxl.job", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "xxl.job", name = "enabled", havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties({XxlJobProperties.class}) @EnableConfigurationProperties({XxlJobProperties.class})

View File

@ -13,7 +13,7 @@ import org.springframework.context.annotation.Configuration;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({MeterRegistryCustomizer.class}) @ConditionalOnClass({MeterRegistryCustomizer.class})
@ConditionalOnProperty(prefix = "yudao.metrics", value = "enable", matchIfMissing = true) // 允许使用 yudao.metrics.enable=false 禁用 Metrics @ConditionalOnProperty(prefix = "yudao.metrics", value = "enable", matchIfMissing = true) // 允许使用 yudao.metrics.enable=false 禁用 Metrics
public class YudaoMetricsAutoConfiguration { public class YudaoMetricsAutoConfiguration {

View File

@ -15,7 +15,7 @@ import org.springframework.context.annotation.Configuration;
* *
* @author mashu * @author mashu
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({BizTraceAspect.class}) @ConditionalOnClass({BizTraceAspect.class})
@EnableConfigurationProperties(TracerProperties.class) @EnableConfigurationProperties(TracerProperties.class)
@ConditionalOnProperty(prefix = "yudao.tracer", value = "enable", matchIfMissing = true) @ConditionalOnProperty(prefix = "yudao.tracer", value = "enable", matchIfMissing = true)

View File

@ -15,7 +15,7 @@ import java.util.List;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoMQAutoConfiguration { public class YudaoMQAutoConfiguration {
/** /**

View File

@ -23,7 +23,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@MapperScan(value = "${yudao.info.base-package}", annotationClass = Mapper.class, @MapperScan(value = "${yudao.info.base-package}", annotationClass = Mapper.class,
lazyInitialization = "${mybatis.lazy-initialization:false}") // Mapper 懒加载,目前仅用于单元测试 lazyInitialization = "${mybatis.lazy-initialization:false}") // Mapper 懒加载,目前仅用于单元测试
public class YudaoMybatisAutoConfiguration { public class YudaoMybatisAutoConfiguration {

View File

@ -8,7 +8,7 @@ import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration(proxyBeanMethods = false)
@AutoConfigureBefore(LockAutoConfiguration.class) @AutoConfigureBefore(LockAutoConfiguration.class)
public class YudaoLock4jConfiguration { public class YudaoLock4jConfiguration {

View File

@ -13,7 +13,7 @@ import org.springframework.data.redis.serializer.RedisSerializer;
/** /**
* Cache Redis * Cache Redis
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties({CacheProperties.class}) @EnableConfigurationProperties({CacheProperties.class})
@EnableCaching @EnableCaching
public class YudaoCacheAutoConfiguration { public class YudaoCacheAutoConfiguration {

View File

@ -9,7 +9,7 @@ import org.springframework.data.redis.serializer.RedisSerializer;
/** /**
* Redis * Redis
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
public class YudaoRedisAutoConfiguration { public class YudaoRedisAutoConfiguration {
/** /**

View File

@ -32,7 +32,7 @@ import java.util.Set;
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class YudaoWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter { public class YudaoWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {

View File

@ -19,7 +19,7 @@ import org.springframework.context.annotation.Configuration;
import javax.servlet.Filter; import javax.servlet.Filter;
@Configuration @Configuration(proxyBeanMethods = false)
@AutoConfigureAfter(YudaoWebAutoConfiguration.class) @AutoConfigureAfter(YudaoWebAutoConfiguration.class)
public class YudaoApiLogAutoConfiguration { public class YudaoApiLogAutoConfiguration {

View File

@ -13,8 +13,8 @@ import org.springframework.context.annotation.Configuration;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Configuration(proxyBeanMethods = false)
@Slf4j @Slf4j
@Configuration
public class YudaoJacksonAutoConfiguration { public class YudaoJacksonAutoConfiguration {
@Bean @Bean

View File

@ -29,7 +29,7 @@ import static springfox.documentation.builders.RequestHandlerSelectors.basePacka
* *
* @author * @author
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@EnableSwagger2 @EnableSwagger2
@EnableKnife4j @EnableKnife4j
@ConditionalOnClass({Docket.class, ApiInfoBuilder.class}) @ConditionalOnClass({Docket.class, ApiInfoBuilder.class})

View File

@ -26,7 +26,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.Filter; import javax.servlet.Filter;
@Configuration @Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties({WebProperties.class, XssProperties.class}) @EnableConfigurationProperties({WebProperties.class, XssProperties.class})
public class YudaoWebAutoConfiguration implements WebMvcConfigurer { public class YudaoWebAutoConfiguration implements WebMvcConfigurer {

View File

@ -8,7 +8,7 @@ import org.springframework.context.annotation.Configuration;
/** /**
* BPM Configuration Activiti Flowable * BPM Configuration Activiti Flowable
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
public class BpmCommonConfiguration { public class BpmCommonConfiguration {
@Bean @Bean

View File

@ -10,7 +10,7 @@ import org.springframework.security.config.annotation.web.configurers.Expression
* @author kemengkai * @author kemengkai
* @create 2022-05-07 08:15 * @create 2022-05-07 08:15
*/ */
@Configuration("bpmSecurityConfiguration") @Configuration(proxyBeanMethods = false, value = "bpmSecurityConfiguration")
public class BpmSecurityConfiguration { public class BpmSecurityConfiguration {
@Bean("bpmAuthorizeRequestsCustomizer") @Bean("bpmAuthorizeRequestsCustomizer")

View File

@ -15,7 +15,7 @@ import org.springframework.context.annotation.Configuration;
* *
* @author jason * @author jason
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
public class BpmFlowableConfiguration { public class BpmFlowableConfiguration {
/** /**

View File

@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.infra.framework.codegen.config;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(CodegenProperties.class) @EnableConfigurationProperties(CodegenProperties.class)
public class CodegenConfiguration { public class CodegenConfiguration {
} }

View File

@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.infra.framework.monitor.config;
import de.codecentric.boot.admin.server.config.EnableAdminServer; import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration(proxyBeanMethods = false)
@EnableAdminServer @EnableAdminServer
public class AdminServerConfiguration { public class AdminServerConfiguration {
} }

View File

@ -11,7 +11,7 @@ import org.springframework.security.config.annotation.web.configurers.Expression
/** /**
* Infra Security * Infra Security
*/ */
@Configuration("infraSecurityConfiguration") @Configuration(proxyBeanMethods = false, value = "infraSecurityConfiguration")
public class SecurityConfiguration { public class SecurityConfiguration {
@Value("${spring.boot.admin.context-path:''}") @Value("${spring.boot.admin.context-path:''}")

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.system.framework.rpc.config; package cn.iocoder.yudao.module.system.framework.rpc.config;
import cn.iocoder.yudao.module.infra.api.file.FileApi; import cn.iocoder.yudao.module.infra.api.file.FileApi;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;

View File

@ -10,7 +10,7 @@ import org.springframework.security.config.annotation.web.configurers.Expression
/** /**
* System Security * System Security
*/ */
@Configuration("systemSecurityConfiguration") @Configuration(proxyBeanMethods = false, value = "systemSecurityConfiguration")
public class SecurityConfiguration { public class SecurityConfiguration {
@Bean("systemAuthorizeRequestsCustomizer") @Bean("systemAuthorizeRequestsCustomizer")

View File

@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.framework.sms;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(SmsCodeProperties.class) @EnableConfigurationProperties(SmsCodeProperties.class)
public class SmsCodeConfiguration { public class SmsCodeConfiguration {
} }

View File

@ -6,7 +6,7 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy;
/** /**
* Spring Aop * Spring Aop
*/ */
@Configuration @Configuration(proxyBeanMethods = false)
@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true) @EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)
public class AopConfiguration { public class AopConfiguration {
} }

View File

@ -8,7 +8,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.EnableTransactionManagement;
@Configuration @Configuration(proxyBeanMethods = false)
@MapperScan("cn.iocoder.mall.payservice.dal.mysql.mapper") // 扫描对应的 Mapper 接口 @MapperScan("cn.iocoder.mall.payservice.dal.mysql.mapper") // 扫描对应的 Mapper 接口
@EnableTransactionManagement(proxyTargetClass = true) // 启动事务管理。 @EnableTransactionManagement(proxyTargetClass = true) // 启动事务管理。
public class DatabaseConfiguration { public class DatabaseConfiguration {

View File

@ -3,7 +3,7 @@ package cn.iocoder.mall.searchservice.config;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
@Configuration @Configuration(proxyBeanMethods = false)
@EnableElasticsearchRepositories(basePackages = "cn.iocoder.mall.search.biz.dao") @EnableElasticsearchRepositories(basePackages = "cn.iocoder.mall.search.biz.dao")
public class ElasticsearchConfiguration { public class ElasticsearchConfiguration {
} }