本节主要内容:

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

转载于:https://blog.51cto.com/kaigejava/1974484

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

  1. spring boot框架学习2-spring boot核心(1)

    本节主要: 1:解析spring boot入口和@SpringBootApplication源码详解 SpringBootApplication包含: @SpringBootConfiguration ...

  2. Spring Boot 框架学习笔记(五)( SpringSecurity安全框架 )

    Spring Boot 框架学习笔记(五) SpringSecurity安全框架 概述 作用 开发示例: 1. 新建项目 2. 引入依赖 3. 编写`SecurityConfig`类,实现认证,授权, ...

  3. Spring Boot 框架学习笔记(二)(配置文件与数据注入 yaml基本语法 JSR303数据验证 多环境切换 )

    Spring Boot 框架学习笔记(二) 六.appliaction.properties配置与数据注入 6.1 `@Value`注解 测试注入数据 读取输入流 6.2 读取配置文件数据注入 单文件 ...

  4. Spring Boot框架学习 - 自定义 MessageConverter实例

    一.自定义 MessageConverter 本篇主要通过实例进行演示,不涉及更底层的细节. 首先,自定义一个 MessageConverter 去处理想要自定义处理的媒体类型,application ...

  5. spring boot 打包成二进制可以直接执行的jar , 非java -jar 启动方式

    spring 打包成jar后可以直接使用java -jar xxx.jar 直接启动.但是还想进一步简化,直接用./xxx.jar 可以注册成系统命令的方式改如何配置呢,其实很简单. pom.xml ...

  6. Spring Boot框架中使用Jackson的处理总结

    1.前言 通常我们在使用Spring Boot框架时,如果没有特别指定接口的序列化类型,则会使用Spring Boot框架默认集成的Jackson框架进行处理,通过Jackson框架将服务端响应的数据 ...

  7. 详解Spring Boot框架中的@Conditional系列注解

    目录 1. @Conditional 注解 2. Spring boot 扩展 1) @ConditionalOnClass和@ConditionalOnMissingClass注解 2) @Cond ...

  8. spring boot 学习(二)spring boot 框架整合 thymeleaf

    spring boot 框架整合 thymeleaf spring boot 的官方文档中建议开发者使用模板引擎,避免使用 JSP.因为若一定要使用 JSP 将无法使用. 注意:本文主要参考学习了大神 ...

  9. idea启动springboot卡_写给新手看的 Spring Boot 入门学习指南

    什么是 Spring Boot ? 解释一下:Spring Boot 可以构建一切.Spring Boot 设计之初就是为了最少的配置,最快的速度来启动和运行 Spring 项目.Spring Boo ...

最新文章

  1. LunarPages空间500错误原因及解决办法
  2. 寻找最大的K个数,Top K问题的堆实现
  3. 【C】printf按8进制、10进制、16进制输出以及高位补0
  4. 在需要时开启Perl新特性
  5. LeetCode-208 Implement Trie (Prefix Tree)
  6. python数据库连接池_Python实现数据库连接池
  7. Linux项目第一次访问非常慢,后来很快的异常
  8. qml入门学习(五):alias
  9. 复制字符串 _strdup _wcsdup _mbsdup
  10. 一名 40 岁“老”程序员的反思
  11. Java多线程笔记(刘意day23、24)
  12. Cmder的安装与配置
  13. gtp java 文件传输_GitHub - zhmgczh/GTPService: 围棋GTP协议应用实例(一个自动对弈程序,命令行交互或命令行与GUI对弈)...
  14. IntelliJ IDEA 12.0搭建Maven Web SSH2架构项目示例(二)
  15. Python初级双层for循环嵌套求素数合数和循环打印**
  16. 上海拍照攻略,让你的朋友圈与众不同
  17. 想进Google,先来做做Google招聘题
  18. matlab r2020b百度网盘下载链接及安装过程
  19. 合理使用DTO(Data Transfer Object)
  20. 3d游戏建模基础教程:3D建模应用领域和四种常用建模方法

热门文章

  1. WCF学习之旅—WCF寄宿前的准备(八)
  2. System.ArgumentException: 输入数组长度大于此表中的列数。
  3. 爬虫 - 豆瓣网《小王子》热评
  4. Java 集合框架 : Collection、Map
  5. Intellij IDEA设置忽略部分类编译错误
  6. Redhat 6.2安装Oracle 11gclient及遇到的问题分析
  7. Google Chrome Native Messaging开发实录(一)背景介绍
  8. .NET MD5加密解密代码
  9. 【黑金ZYNQ7000系列原创视频教程】06.ZYNQ来自FPGA的中断——按键中断实验
  10. 引用dll动态库,动态库中弹出对话框输入,将输入参数,作为变量继续调用。...