• spring框架学习4:bean注解配置


    在上一篇中学习了如何使用spring来管理对象,但是再实际的开发中,再spring配置文件中配置bean元素是非常繁琐的,因此实际开发中使用注解来配置spring。具体操作如下:

    在配置文件中,扫描实体类包:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
        <!--扫描实体类包-->
        <context:component-scan base-package="com.zs.entity"/>
    
    </beans>

    使用注解配置对象,在类的头部使用注解@Component,

    package com.zs.entity.impl;
    
    import com.zs.entity.Cpu;
    import com.zs.entity.Display;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.stereotype.Component;
    
    import javax.annotation.Resource;
    /**
     * 创建e470电脑,电脑有显示器和Cpu
     */
    
    @Component
    public class E470 {
    
        @Resource
        @Qualifier(value = "lgDisplay")
        private Display display;
    
        @Autowired
        private Cpu cpu;
    
    
        /*电脑有自己的工作的方法*/
        public void work(){
            display.show();
            cpu.calc();
        }
        /*生成get和set方法*/
        public Display getDisplay() {
            return display;
        }
    
        public void setDisplay(Display display) {
            this.display = display;
        }
    
        public Cpu getCpu() {
            return cpu;
        }
    
        public void setCpu(Cpu cpu) {
            this.cpu = cpu;
        }
    
    }

    引用对象类型头部也需要添加@Component,对象中的引用类型,当有多个实现类时,需要写出使用的实现类是哪儿一个,@Autowired是按照类型装配,@Resource默认按照名字装配,如果不成功,再按照类型装配,@Qualifier指定要装配对象的id,使用注解时,默认的对象的id为类名首字母小写。

    然后测试:

    import com.zs.entity.impl.E470;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class SpringTest {
        @Test
        public void test1() {
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            System.out.println("工厂类初始化成功");
            E470 e470 = (E470) context.getBean("e470");
            e470.work();
            
        }
    }
  • 相关阅读:
    WEBSERVICE 分析器错误信息: 未能创建类型
    Powerdesigner中表导出sql语句关于字段注释乱码的问题
    配置redis服务器允许远程连接
    [转]ubuntu系统重新分区、根目录扩容
    [转]自动驾驶平台Apollo 2.5环境搭建
    [转]在ROS下使用zeroconf配置多机通信
    ROS 安装完成后运行小乌龟示例程序
    [转]RoboWare Studio的使用和发布器/订阅器的编写与测试
    【转】ROS之topic和service通信比较
    【转】贝叶斯公式的直观理解(先验概率/后验概率)
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/11039853.html
Copyright © 2020-2023  润新知