专栏首页凯哥Javaspring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring

spring boot框架学习学前掌握之重要注解(2)-通过java的配置方式进行配置spring

本节主要内容:

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中的<bean>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配置文件中的<context:component-scan >标签功能一样--组件扫描,扫描含有注解的类。

2.3:@bean的理解

先看下图:

XML配置时代怎么获取userDao呢?

如下图:

请点击此处输入图片描述

通过上下图对比。我们可以发现,@bean的注解其实和xml中<bean>节点功能一样。

本节总结:

本节通过代码实战,让我们学到:

1:大致了解到@Configuration、@ComponentScan()和@bean的使用

2:通过spring 2.x时代的xml配置和注解进行比较,更深入一步熟悉三个注解的使用

下节预告:

在下节课中,我们将要讲到另个一注解。先透露下这个注解的功能:

通过本注解,可以直接读取到外部配置文件的数据。

欢迎关注凯哥公众号:凯哥Java

欢迎访问凯哥个人网站:www.kaigejava.com

本文地址:http://www.kaigejava.com/article/detail/32

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Elasticsearch Search API之(Request Body Search 查询主体)-下篇

    查询选择副本分片的倾向性(即在一个复制组中选择副本的分片值。默认情况下,es以未指定的顺序从可用的碎片副本中进行选择,副本之间的路由将在集群章节更加详细的介绍 ...

    丁威
  • ES Pipeline Aggregation(管道聚合)

    同级管道聚合,它计算同级聚合中指定度量的平均值。同级聚合必须是多桶聚合,针对的是度量聚合(metric Aggregation)。 示例如下:

    丁威
  • Netty-server

        当然网上对Netty 这框架有许多人都介绍,对于在网络编程的地位以及优劣性也有很多,打架可以去看看,今天我主要的目的是将自己项目中的实例拿出来和打架风向

    冯杰宁
  • 源码分析Dubbo事件派发机制

    从官网我们得知,Dubbo协议是使用单一长连接来进行网络传输,也就是说服务调用方持久与服务提供者建立一条连接,所有的服务调用调用信息通过。 一条TCP连接进行传...

    丁威
  • Android 双击返回键退出程序的3种写法~

    LZ-Says: 去年真的浪费了好多的机会,,,而今年,却找不到一个合适的机会,,,还是自己能力有所欠缺啊。。。从一点点开始积累吧。。。那个谁,,,这次,我会...

    HLQ_Struggle
  • 优化springboot

    原文地址:https://www.cnblogs.com/superfj/p/8667977.html

    冯杰宁
  • Apk 反编译前期了解

    LZ-Says:学习之路,似乎枯燥乏味,唯有耐着性子,独自前行,当光明笼罩的那一刻,一切,也仿佛明亮了许多。

    HLQ_Struggle
  • Dubbo网络通讯篇概述

    从本节开始将深入学习Dubbo网络通讯的底层实现细节,在深入学习Dubbo网络模型时,首先应从整体上了解Dubbo的网络通讯模型、线程模型是怎样的?下图是Dub...

    丁威
  • HttpServletRequest 使用@Autowired 注解会有问题吗?

    SpringBoot 中,默认注入的对象是单例对象,那么,我们如果注入一个 HttpServletRequest,会有问题吗?因为每次请求,Request 是不...

    水货程序员
  • Java程序员进阶笔记实操—大型网站架构技术之负载均衡详解(2)

    欢迎关注专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。

    慕容千语

扫码关注云+社区

领取腾讯云代金券