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中的<bean id=xxxx> )

2. 在相同目录下创建JavaConfig(类名随意),为该类添加@ComponentScan的注解。(即对应着xml中的<context:component-scan base-package="包名"/>)

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 相同。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容