spring注释与IOC理论结合(面向接口编程)

spring注释与IOC理论结合(面向接口编程)

1、Bean的理解

①被称作 bean 的对象是构成应用程序的支柱;

②bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象;

2、注册bean

需要被spring容器管理的java类都可以注册为bean,容器会自动将其通过new方式创建对象实例。

那么这样一来,几乎所有的java类都是bean,如果用一个注解来注册(如@Component),就缺乏说明性意义。

所以有,同样是注册bean作用的注解:

@Service 用于注释业务逻辑类

@Repository 用于注释数据访问类

@Controller 用于注释控制器类

@Component 用于注释其他组件类

另外,springframework提供@RestController注释,其作用只不过是@Controller和@ResponseBody注释的简写。

3、注入bean

既然前面我们已经通过注册注释在spring容器生成了bean,也就是已经得到了实例化对象,那么接下来用到相应bean对象的时候,就不需要new对象了:

  1. @Autowired

  2. private UserDao userDao;

关于注入注释有:

@Resource 由J2EE提供,按名称装配为主,兼容按类型装配。如

@Autowired 由spring提供,按类型装配,若需按名称装配,则需再填@Qualifier("userDao")。如@Autowired private UserDao userDao; //按UserDao类装配。

4、结合IOC概念

IOC简单的说是将Chart抽象化,由第三方将不同的Chart子类实例化对象,赋值给抽象的Chart变量。

这样避免了Chart变量的局限性,使其同一show方法,执行多样化程序。就如,同一把枪,装不同的弹夹都能发射出相应的子弹。

综上,上述所提到的第三方就是spring容器,赋值给Chart变量的不同实例化子类对象就是bean.

spring容器通过@Component注释实现子类对象实例化为bean,通过@Autowired注释实现bean注入Chart变量。

后来,发现一个概念叫:面向接口编程,这个名称可以很好的概括IOC的理念。


分享到:


相關文章: