zoukankan      html  css  js  c++  java
  • 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();
            
        }
    }
  • 相关阅读:
    添加GDataXMLNODE.h和.m的方法
    NSPredicate的用法
    oc正则表达式基本语法(二)
    洛谷3931 [洛谷八连测] 一道难题
    洛谷2024 食物链 并查集
    洛谷1005 【NOIP2007】矩阵取数游戏
    洛谷3927 [洛谷八连测] 一道中档题
    洛谷1113 杂务
    洛谷1019 单词接龙 字符串dfs
    洛谷1414 又是毕业季II
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/11039853.html
Copyright © 2011-2022 走看看