Spring注解

什么是注解?

注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析注解来使用这些数据),用来将任何的信息或者元数据(MetaData)与程序元素(类、方法、成员变量等)进行关联。

 

Annotation是一种接口(@interface),它继承了java.lang.annotition.Annotition接口

 

本次介绍的是以下4中注解

@Component        标识一个类是被Spring容器管理的Bean

@Value     给类的普通属性赋值

@Resource    给类的域属性赋值

@Autowired     给类的域属性赋值

 

@Resource和@Autowire的作用一样,不同点就是前者是JDK提供的注解,后者是Spring提供的注解,且要与@Qualifier一起使用

 

使用注解的案例

创建Car类和Student类

Student

package cn.happy.day04di;

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 Administrator on 2018/3/6.
 */
@Component("stu")
public class Student {
    @Value("马云")
    private String name;
    
    /*@Resource(name="car")*/
    @Autowired
    @Qualifier(value = "car")   //这里的car要与Car类里的@Component("car")一致
    private Car car;

    public Car getCar() {
        return car;
    }

    public void setCar(Car car) {
        this.car = car;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", car=" + car +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

  

Car

package cn.happy.day04di;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * Created by Administrator on 2018/3/6.
 */
@Component("car")
public class Car {
    @Value("red")
    private String color;

    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:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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="cn.happy.day04di"><!--cn.happy.day04di代表扫描本身和子包,cn.happy.day04di.*只扫描子包-->
    </context:component-scan>


</beans>

  

测试

 

 @Test
    public void Spring(){
        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext-day04di.xml");
        Student service=(Student)ctx.getBean("stu");
        System.out.println(service);
    }

 

  

 

posted @ 2018-03-07 14:10  徐昌琦  阅读(157)  评论(0编辑  收藏  举报