Spring框架的IOC零配置使用介绍

老的EJP网页开发模式中,会牵扯到大量的xml配置,以至于开发员的项目维护成本较高。于是IOC技术也应运而生。说到IOC(控制反转),简单的说就是 通过 配置来创建对象,而不是通过代码来创建。而Spring则是这个技术的比较流行的框架之一。下面来介绍下Spring框架的IOC运用实例。

1. 早期的Spring框架是通过XML配置文件来创建对象,类似于下面的代码:

      // 定义Spring配置文件的路径

        String xmlPath = "applicationContext.xml";

        // 初始化Spring容器,加载配置文件

        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);

        // 通过容器获取personDao实例

        PersonDao personDao = (PersonDao) applicationContext.getBean("personDao");

        // 调用 personDao 的 add ()方法

        personDao.add();

applicationContext.xml里面可以增加一系列需要IOC创建的bean,定义bean的创建细节;另外也可以在里面自动scan包名下的所有的对象注入到bean中。

2. 最新的Spring框架 已经做到了IOC的零配置。所谓零配置,就是不需要xml配置文件,完全通过在java文件中添加注解就可以做到 通过加载配置的方式生成对象。

零配置的步骤如下:

1. 为目标类添加上@component, ( 即对应着xml中的

2. 在相同目录下创建JavaConfig(类名随意),为该类添加@ComponentScan的注解。(即对应着xml中的

3. 测试程序通过AnnotationConfigApplicationContext来获取到bean对象,典型代码如下:

        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(JavaConfig.class);

        People people = applicationContext.getBean(People.class);

        people.work();

执行后打印study

以上即一个极简的例子,来体验零配置生成bean的过程。

Spring Boot的一些常用Component,现将它们的介绍拷贝如下:

1)@Component

可以使用此注解描述 Spring 中的 Bean,但它是一个泛化的概念,仅仅表示一个组件(Bean),并且可以作用在任何层次。使用时只需将该注解标注在相应类上即可。

2)@Repository

用于将数据访问层(DAO层)的类标识为 Spring 中的 Bean,其功能与 @Component 相同。

3)@Service

通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。

4)@Controller

通常作用在控制层(如 Struts2 的 Action),用于将控制层的类标识为 Spring 中的 Bean,其功能与 @Component 相同。

你可能感兴趣的:(Spring框架的IOC零配置使用介绍)