• Spring Bean定义


    一、声明Bean的几种方式

    1、xml 配置
    2、配置类中定义
    3、注解定义@Componet(@Controller @Service @Repository)
    4、import导入

    ${}获取外部资源文件中的值
    #{}:el表达式

    二、自动注入方式

    1、setter属性注入
    2、构造器注入

    xml中自动装配原理:autowire的值
    a、byType:根据类型去自动匹配 当出现多个类型或者未匹配到类型则会报错(默认)
    b、byName:根据set方法的名字去自动匹配
    c、constructor:根据构造器去匹配
    优先根据参数名字去匹配,假如参数名字未匹配到,则根据参数类型去匹配,如果类型出现多个,会注入失败
    根据构造器的参数进行完整匹配,如果IOC容器中定义的Bean,不满足构造器中的参数类型及个数,则注入失败

    <context:component-scan base-package="">
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter>
    </context:component-scan>
    use-default-filters 默认为true,默认扫描@Controller,@Service,@Repository,@Componet等注解

    1、排除扫描选项:<context:exclude-filter type="" expression=""></context:exclude-filter>
    2、包含扫描选项:<context:include-filter type="" expression=""></context:include-filter>
    type值类型:
    a、annotation 默认值 根据注解的完整限定名设置排除/包含
    b、assignable 根据类的完整限定名设置排除/包含

    引用外部资源文件
    <context:property-placeholder location="db.properties"></context:property-placeholder>

    @Autowired的自动注入
    默认优先根据类型进行匹配
    如果根据类型匹配到多个则根据名字进行匹配,
    如果根据名字(实现类的类名)没有匹配到则报错
    处理方式:
    a、可以修改属性的名字对应bean的名字,userServiceImpl
    @Autowired
    private UserService userServiceImpl;
    b、可以去修改Bean注册到IOC容器的名字,@Service("userService")
    @Autowired
    private UserService userServiceImpl;
    c、可以通过@Qualifier设置获取属性的名字,@Qualifier("userServiceImpl")
    @Autowired
    @Qualifier("userServiceImpl")
    private UserService userService;


    三、java类配置IOC的Bean实例

    1、配置类上加
    a、@Configuration:用于标记一个spring配置类,相当于spring配置Bean实例的xml文件
    b、@ComponetScan(basePachages="cn.com.landiss"):相当于<context:component-scan base-package="cn.com.landiss">
    c、@PropertySource("db.properties"):引入外部资源文件,
    可以通过如下方式获取值:
    @Value("${mysql.username}")
    private String username;
    @Value("${mysql.password}")
    private String password;
    @Value("${mysql.url}")
    private String url;
    @Value("${mysql.driverClass}")
    private String driverClass;

    d、@Import:
    1)导入其他的配置类。选用
    2)将引入的类配置为一个bean实例

    2、声明Bean的方式
    即在类中定义方法,如下:
    public UserService userService(){
    return new UserService();
    }
    返回类型未需要注册的到IOC中的类型,方法名相当于xml中定义的Bean ID

    3、bean属性注入方式
    a、注入外部bean实例,通过定义方法参数获取要注入的属性值
    b、注入内部bean实例,在配置内中直接调用定义的方法即可
    注:内部与外部是针对当前的配置类

    —转载请注明出处
  • 相关阅读:
    分布式文件系统
    分布式系统中的CAP理论
    安装Elasticsearch-header插件
    Elasticsearch 安装
    分布式搜索引擎-ES
    高可用集群架构 Keepalived 双机主备和双主热备
    先阶段部署架构
    技术人员的两个发展方向
    input标签写CSS时需要注意的几点(先收藏)
    如何设置box shadow的透明度
  • 原文地址:https://www.cnblogs.com/landiss/p/14501260.html
Copyright © 2020-2023  润新知