zoukankan      html  css  js  c++  java
  • 【Java Web开发学习】Spring 注解

    【Java Web开发学习】Spring 注解

    ===================================================================

    1、@ComponentScan 组件扫描

    2、条件

    ===================================================================

    1、@ComponentScan 组件扫描

    value 等价与 basePackages
    value = "cn.ycx.web"
    basePackages = "cn.ycx.web"

    value 等价与 classes
    excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, value={org.springframework.stereotype.Controller.class} )}
    excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {cn.ycx.web.BeanUtils.class})}

    2、条件

    当 MyAutoConfig 类存在时创建Bean
    @ConditionalOnClass(MyAutoConfig.class) // 不写是value
    @ConditionalOnClass(name = "ycx.demo.config.MyAutoConfig")// 注意是全限定类名

    当 MyAutoConfig 类不存在时创建Bean
    @ConditionalOnMissingClass("ycx.demo.config.MyAutoConfig")

    当 MyAutoConfig 对象存在时创建Bean
    @ConditionalOnBean(MyAutoConfig.class) // 不写是value
    @ConditionalOnBean(name = "myAutoConfig") // bean 的名称默认类名第一个字母小写或者是自定义的名字

    当 MyAutoConfig 对象不存在时创建Bean
    @ConditionalOnMissingBean(MyAutoConfig.class) // 不写是value
    @ConditionalOnMissingBean(name = "myAutoConfig") // bean 的名称默认类名第一个字母小写或者是自定义的名字

    配置类
    @ConfigurationProperties(prefix = "aliyun")
    public class AliyunConfig {}

    @Configuration
    @EnableConfigurationProperties(AliyunConfig.class)
    @ConditionalOnProperty(prefix = "aliyun", name = "enabled", havingValue = "true")
    public class AliyunAutoConfig {
    }

  • 相关阅读:
    代理模式和策略模式的区别
    代理模式vs适配器模式vs外观模式 转
    装饰模式与代理模式的区别(转载)
    用Delphi实现动态代理(2):设计说明  转
    Java静态内部类的介绍
    非常好的Java反射例子
    Java多线程中的锁机制
    Java多线程共享数据、同步、通信
    Java程序运行超时后退出解决
    Java安全:运用加密技术保护Java源代码
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/13631957.html
Copyright © 2011-2022 走看看