spring注解开发(纯注解开发模式)(2)
- IT业界
- 2025-08-22 16:06:01

目录
一、spring配置文件的取代。
(1)基本介绍。
(2)项目(工程)环境。
(3)创建新包(config)、new配置类(SpringConfig)。
<1>注解@Configuration。(标明配置类)
<2>注解@ComponentScan。(扫描注解)
(4)替换原测试类代码。
<1>AnnotationConfigApplicationContext。
二、spring纯注解开发模式的注意事项。
(1)注解@Configuration、@ComponentScan的补充说明。
(2)初始化容器方式的转变。
引言:本篇博客的案例(环境搭建)都在上一篇博客详细展现。
spring注解开发(spring注解定义(配置)bean)(1)-CSDN博客
一、spring配置文件的取代。 (1)基本介绍。 spring3.0后升级了纯注解开发模式。也就是使用Java类去替代spring的配置文件。开启了spring快速开发的赛道模式。(2)项目(工程)环境。 现在项目中的spring配置文件中只使用标签<context:component-scan ...>扫描指定包下的实体类。需要进行修改(不写配置文件)让项目彻底变成纯注解开发的spring项目。
其中实体类BookServiceImpl、BookDaoImpl各自使用了注解@Service、@Repository配置了bean。 package com.fs.service.impl; import com.fs.service.BookService; import org.springframework.stereotype.Service; @Service public class BookServiceImpl implements BookService { @Override public void save() { System.out.println("book service save..."); } } package com.fs.dao.impl; import com.fs.dao.BookDao; import org.springframework.stereotype.Repository; @Repository("bookDao") public class BookDaoImpl implements BookDao { @Override public void save() { System.out.println("book dao save..."); } }
(3)创建新包(config)、new配置类(SpringConfig)。 具体操作:让SpringConfig这个类代替之前创建的spring配置文件。包结构。接口、实体类层次如下所示。
<1>注解@Configuration。(标明配置类) 这个注解写上后,就代表这是spring的配置类。 <2>注解@ComponentScan。(扫描注解) 代替标签<context:component-scan ...>的扫描指定包下类的注解作用。
(4)替换原测试类代码。 基于XML配置文件的测试类。使用ApplicationContext容器加载spring配置文件并获取bean。但是纯注解开发模式不需要这种写法。 package com.fs.test; import com.fs.dao.BookDao; import com.fs.service.BookService; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main(String[] args) { //使用类路径加载配置文件 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); BookDao bookDao = (BookDao) context.getBean("bookDao"); System.out.println(bookDao); System.out.println("======================="); BookService bookService = context.getBean(BookService.class); System.out.println(bookService); } }
但是现在spring配置文件已经被新建的配置类(SpringConfig)代替。所以测试类的获取bean的方式的代码也需要进行修改。新建测试类(AppForAnnotation) <1>AnnotationConfigApplicationContext。 将平常加载配置文件的实现类ClassPathXmlApplicationContext替换成 AnnotationConfigApplicationContext。其它的获取bean、打印输出得到代码不需要修改。 package com.fs.test; import com.fs.config.SpringConfig; import com.fs.dao.BookDao; import com.fs.service.BookService; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class AppForAnnotation { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); BookDao bookDao = (BookDao) context.getBean("bookDao"); System.out.println(bookDao); System.out.println("======================="); BookService bookService = context.getBean(BookService.class); System.out.println(bookService); } }
实际测试类的运行结果如下。将配置文件替换成配置类,无非就是换一种使用方式:把配置文件的信息替换成另外一种描述形式。 二、spring纯注解开发模式的注意事项。 (1)注解@Configuration、@ComponentScan的补充说明。 注解@Configuration用于设定当前类为配置类。(对标spring配置文件)
注解@ComponentScan用于扫描设定的路径(xxx.xxx...)。 注意这个注解只能添加一次。若当有多个需扫描的路径时,使用数组格式("{}")添加。进入@ComponentScan注解查看其属性value。发现其类型是String的数组。
简单演示(多个路径扫描)。这样看起来好像"多此一举",但实际是有"说法"的。后面的学习时,当我们的bean足够多的时候,某些bean是不能去随便加载的!
(2)初始化容器方式的转变。 从读取spring配置文件初始化容器对象——>转变成读取Java配置类初始化容器对象。
加载配置类初始化ApplicationContext容器对象。 加载配置文件初始化ApplicationContext容器对象。
spring注解开发(纯注解开发模式)(2)由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“spring注解开发(纯注解开发模式)(2)”
上一篇
网络运维学习笔记012网工初级(HCIA-Datacom与C
下一篇
通用参考模型