Bean的常用配置---注解方式

                        使用注解定义Bean

Spring2.5引入使用注解去定义Bean

    @Component描述Spring框架中Bean

    在xml中引入context

xmlns:context="http://www.springframework.org/schema/context"

    在xml中配置需要的包

    在这个包中的类使用Component注解

package cn.jiaoshoublog.demo1;

import org.springframework.stereotype.Component;

@Component("userService")

public class UserService {

    public String sayHello(String name) {

        return "Hello"+name;

    }

}

除了@Component外, Spring提供了3个功能基本和@Component等效的注解

  @Repository用于对DAO实现类进行标注

  @Service用于对Service实现类进行标注

  @Controller用于对Controller实现类进行标注

这三个注解是为了让标注类本身的用途清晰, Spring在后续版本会对其增强

@value注解,对简单属性的注解

package cn.jiaoshoublog.demo1;

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

import org.springframework.stereotype.Service;

@Service("userService")

public class UserService {

@Value("屎")

private String something;

    public void eat() {

        System.out.println("吃:"+something);

    }

}

如果使用此类中的eat会打印出  “ 吃:屎 ”

@Autowired按类型来注入,注入的对象是安装类来注入的

使用@Autowired进行自动注入

  @Autowired默认按照类型进行注入

      如果存在两个相同Bean类型相同,则按照名称注入

  @Autowired注入时可以针对成员变量或者set方法

  通过@Autowired的required属性,设置-定要找到匹配的Bean

  使用@Qualifier指定注入Bean的名称

    使用Qualifier指定Bean名称后,注解Bean必须指定相同名称

使用方法

package cn.jiaoshoublog.demo1;

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

import org.springframework.stereotype.Service;

@Service("userService")

public class UserService {

    @Autowired

    @Qualifier("UserDao")//指定Bean名

    private UserDaouserDao;

    public void save() {

        System.out.println("Service中的保存用户");

        userDao.save();

    }

}

被注入的对象

package cn.jiaoshoublog.demo1;

import org.springframework.stereotype.Repository;

//使用@Autowired注入和@Repository("xxx")中的xxx没有任何关系 

@Repository("UserDao")      

public class UserDao {

    public void save() {

    System.out.println("Dao中的保存用户");

    }

}

Spring提供对JSR-250中定义@Resource标准注解的支持

@Resdurce和@Autowired注解功能相似

使用方法相当于上面的两行代码@Autowired    @Qualifier("UserDao")

这两行代码相当于 @Resdurce(name="UserDao")

其他注解

Spring初始化bean或销毁bean时,有时需要作一些处理工作,因此spring可以在创建和拆卸bean的时候调用bean的两个生命周期方法。@Scope()来指定单例还是多例

Bean的常用配置---注解方式_第1张图片
两种注解方式对比

你可能感兴趣的:(Bean的常用配置---注解方式)