zoukankan      html  css  js  c++  java
  • Spring(五)Spring之注解

    你自己理解的注解是什么?

    那在Spring中注解的概念又是什么?(通过百度)

    注解(Annotation),也叫元数据(MetaData)信息 。一种代码级别的说明。
    它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。
    它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,
    用来对这些元素进行说明,注释

    注解的本质其实就是带有@的借口

    下面来介绍一下几种注解的作用

    @Component     表示一个类是被Spring容器管理的一个Bean

    @Value   表示给类的普通属性赋值

    @Resource  给类的域属性赋值

    @autoWire   给类的域属性赋值

    后面两个的作用相同,但是他们来源的包不同

    Resource是JDK提供的注解 import javax.annotation.Resource;

    Spring提供的注解import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.beans.factory.annotation.Qualifier;

    那么怎么使用注解给类中的属性赋值呢

    package demo06;
    
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    import javax.annotation.Resource;
    
    /**
     * Created by mycom on 2018/3/5.
     */
    @Component("student")
    public class Student {
        @Value("张三")
        private String name;
        private Integer age;
        //@Resource(name="car")  //Resource是JDK提供的注解  import javax.annotation.Resource;
        @Autowired
        @Qualifier(value = "car") //Spring提供的注解import org.springframework.beans.factory.annotation.Autowired;
                                  //import org.springframework.beans.factory.annotation.Qualifier;
        private Car car;
    
        public Student() {
        }
    
        public Student(String name, Integer age) {
    
            this.name = name;
            this.age = age;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Integer getAge() {
            return age;
        }
    
        public void setAge(Integer age) {
            this.age = age;
        }
    
        public Car getCar() {
            return car;
        }
    
        public void setCar(Car car) {
            this.car = car;
        }
    }
    package demo06;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    /**
     * Created by mycom on 2018/3/5.
     */
    @Component("car")
    public class Car {
        @Value("红色")
        private String color;
        private String brand;
    
        public String getBrand() {
            return brand;
        }
    
        public void setBrand(String brand) {
            this.brand = brand;
        }
    
        public String getColor() {
    
            return color;
        }
    
        public void setColor(String color) {
            this.color = color;
        }
    }
    <?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:aop="http://www.springframework.org/schema/aop"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:p="http://www.springframework.org/schema/p"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    ">
        <context:component-scan base-package="demo06"></context:component-scan>
    
    
    </beans>

    彤过编写测试类,运行的结果是:

    @Test
        public void t1(){
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationContextAnnotation.xml");
            Student student =(Student) context.getBean("student");
            System.out.println(student.getCar().getColor());
        }

  • 相关阅读:
    博客园的自定义皮肤
    为自己的审美观感到惭愧
    关于GitHub的Hello Word
    使用Windows Live Writer撰写的第一篇博文
    正式入驻博客园了
    一个使用 Web Components 的音乐播放器: MelodyPlayer
    一个(伪)MaterialDesign风格的博客园皮肤
    从零开始,做一个NodeJS博客(一):Heroku上的最简NodeJS服务器
    从零开始,做一个NodeJS博客(零):整体规(chui)划(niu)
    在 Xamarin.Android 中使用 Notification.Builder 构建通知
  • 原文地址:https://www.cnblogs.com/my-123/p/8521770.html
Copyright © 2011-2022 走看看