spring中生成的bean的形式

38 篇文章 0 订阅

目录

完整类名

完整类名\$$EnhancerBySpringCGLIB\$$XXX

com.sun.proxy.$Proxy序号


如下代码


@Slf4j
@SpringBootApplication
@Import({
        FeignConfig.class,
        GlobalCorsConfig.class,
        FlyWayConfig.class,
        RedisConfig.class,
        MyBatisConfig.class,
        SwaggerConfig.class,
        ValidatorConfig.class
})
public class Application {
 
    public static void main(String[] args) throws UnknownHostException {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(Application.class, args);
        int beanDefinitionCount = applicationContext.getBeanDefinitionCount();
        System.out.println(beanDefinitionCount);
        String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
        for (String beanDefinitionName : beanDefinitionNames) {
            String name = applicationContext.getBean(beanDefinitionName).getClass().getName();
            if (StringUtils.containsIgnoreCase(beanDefinitionName, "mapper")) {
                // System.out.println(beanDefinitionName);
                // System.out.println(name);
                System.out.println(String.format("%s %s", beanDefinitionName, name));
            }
            // System.out.println(String.format("%s %s", beanDefinitionName, name));
        }
        Environment env = applicationContext.getEnvironment();
        String ip = InetAddress.getLocalHost().getHostAddress();
        String port = env.getProperty("server.port");
        String path = env.getProperty("server.servlet.context-path");
        String url = "http://" + ip + ":" + port + path;
        log.info("----------------------------------------------------------");
        log.info("Application ICan is running! Access URLs:");
        log.info("Local      : http://localhost:" + port + path);
        log.info("External   : " + url);
        log.info("Swagger文档: http://" + ip + ":" + port + path + "doc.html");
        log.info("----------------------------------------------------------");
    }
}

生成的bean类型有以下几种

完整类名

一般是由注解 @Component、@ComponentScan、@Import、@ImportResource、@Configuration(proxyBeanMethods = false) 指定后生成的类注入到 ioc 容器中


com.xxx.cql.common.bean.mybatis.MyBatisConfig com.xxx.cql.common.bean.mybatis.MyBatisConfig

完整类名\$$EnhancerBySpringCGLIB\$$XXX

通过 cglib 生成的代理类注入到 ioc 容器中,比如普通的 @Controller、@Service、@Configuration(proxyBeanMethods = true)


adminController com.xxx.cql.sys.app.base.adapter.AdminController$$EnhancerBySpringCGLIB$$73e22353

com.sun.proxy.$Proxy序号

一般是由接口生成的动态代理类注入到 ioc 容器中,比如 mybatis的 @MapperScan、@Mapper


menuMapper com.sun.proxy.$Proxy119

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值