本文共 1035 字,大约阅读时间需要 3 分钟。
Spring框架本身有四大原则: 1)使用POJO进行轻量级和最小侵入式开发。 2)通过依赖注入和基于接口编程实现松耦合。 3)通过AOP和默认习惯进行声明式编程。 4)使用AOP和模板(template)减少模式化代码。 Spring所有功能的设计和实现都是基于此四大原则的。
我们经常说的控制反转(Inversion of Control-IOC)和依赖注入(dependency injection-DI)在Spring环境下是等同的概念,控制反转是通过依赖注入实现的。
所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖。
依赖注入的主要目的是为了解耦,体现了一种“组合”的理念。
如果你希望你的类具备某项功能的时候,是继承自一个具有此功能的父类好呢?还是组合另外一个具有这个功能的类好呢?
答案是不言而喻的,继承一个父类,子类将与父类耦合,组合另外一个类则使耦合度大大降低。
Spring IoC容器(ApplicationContext)负责创建Bean,并通过容器将功能类Bean注入到你需要的Bean中。
Spring提供使用xml、注解、Java配置、groovy配置实现Bean的创建和注入。
无论是xml配置、注解配置还是Java配置,都被称为配置元数据,所谓元数据即描述数据的数据。
元数据本身不具备任何可执行的能力,只能通过外界代码来对这些元数据行解析后进行一些有意义操作。
Spring容器解析这些配置元数据进行Bean初始化、配置和管理依赖。
声明Bean的注解
@Service
在业务逻辑层(service层)使用。@Repository
在数据访问层(dao层)使用。@Controller
在展现层(MVC→Spring MVC)使用。注入Bean的注解,一般情况下通用。
@Autowired
:Spring提供的注解。@Inject
:JSR-330提供的注解。@Resource
:JSR-250提供的注解。@Autowired、@Inject、@Resource可注解在set方法上或者属性上,一般习惯注解在属性上,优点是代码更少、层次更清晰。
基于注解的Bean的初始化和依赖注入,Spring容器类选用AnnotationConfigApplicationContext。
转载地址:http://ehjwi.baihongyu.com/