spring boot框架学习学前掌握之重要注解(2)-通过ja
本节主要内容:
1:通过代码演示实现零XML配置spring
2:使用重点注解理解
声明:
本文是《凯哥陪你学系列-框架学习之spring boot框架学习》中spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring.
在上一节《spring boot框架学习学前掌握之重要注解(1)-spring的java配置方式》我们把需要的环境搭建好了。那么本节,将通过代码演示,怎么零配置实现spring 注入。
1:通过代码演示实现零XML配置spring
一:项目结构:

请点击此处输入图片描述

user实体对象:

请点击此处输入图片描述

private String userName;
private String password;
private Integer age;
dao层:

请点击此处输入图片描述

server层:

请点击此处输入图片描述

Java注解配置(重点类)

请点击此处输入图片描述

代码如下:
@Configuration //通过该注解来表明该类是一个spring的配置。其相当于是一个xml文件
@ComponentScan(basePackages="com.kaigejava.springboot.javaconfig")
//@ComponentScan 该注解配置扫描的包
public class springConfig {
@Bean //通过该注解来表明是一个bean对象。相当于是XML中的
public UserDao getUserDao(){
return new UserDao();
}
}
测试类:

请点击此处输入图片描述

说明:
这里使用了:
AnnotationConfigApplicationContext context
= new AnnotationConfigApplicationContext(springConfig.class);
而非使用的:
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
运行结果:

请点击此处输入图片描述

我们看到已经和我们预期的结果一样。说明通过注解方式可以完全替代xml文件。
2:使用重点注解理解
2.1:@Configuration的理解:
如果需要理解这个的话,我们先回到spring 2.x时代。全部使用xml配置的伪代码如下:

请点击此处输入图片描述
@Configuration这个注解其实就是:


去掉被选中的部分。
2.2:@ComponentScan(basePackages="com.kaigejava.springboot.javaconfig")的理解
@ComponentScan该注解的功能和xml配置文件中的标签功能一样--组件扫描,扫描含有注解的类。
2.3:@bean的理解
先看下图:

XML配置时代怎么获取userDao呢?
如下图:

请点击此处输入图片描述
通过上下图对比。我们可以发现,@bean的注解其实和xml中节点功能一样。
本节总结:
本节通过代码实战,让我们学到:
1:大致了解到@Configuration、@ComponentScan()和@bean的使用
2:通过spring 2.x时代的xml配置和注解进行比较,更深入一步熟悉三个注解的使用
下节预告:
在下节课中,我们将要讲到另个一注解。先透露下这个注解的功能:
通过本注解,可以直接读取到外部配置文件的数据。
欢迎关注凯哥公众号:凯哥Java
欢迎访问凯哥个人网站:www.kaigejava.com
本文地址:http://www.kaigejava.com/article/detail/32