最近突发奇想,整合一下以前一些学习笔记,分享自己这几年爬过的坑,逐步更新文章,谢谢大家的关注和支持。

这节讲一下SpringBoot的学习必须的一些基础,Java配置。其实在Spring2.0时代就已经有注解配置了,但是开发人员还是喜欢注解和xml混合配置,当SpringBoot出来后,这个全注解配置,即Java配置就成为主流。

讲一个例子
在SpringMVC+Spring+Mybatis框架整合时,必须注入IOC容器的时一个数据库连接池,因此做过SSM架构搭建的人都知道要配置以下

<!-- 配置连接池 -->
<bean id="dataSource" class="com.alibab.druid.pool.DruidDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在SpringBoot中如何通过Java配置把其中注入呢(这边只是讲个例子,SpringBoot有整合了Mybatis依赖,因此不需要我们自己注入,不过大家可以通过这个例子来进行注入一些SpringBoot没提供的整合依赖包)

比较常用的注解有下面有:
@Configuration:声明一个类作为配置类,代替xml文件
@Bean : 声明在方法上,其返回值注入到Bean容器中,默认id为方法名
@Value : 属性注入
@Property:指定外部属性文件

导入Druid的依赖

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

如果Spring2.0学过注解配置的话,其实通过这些就可配置了,编写一个JdbcConfig类

@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig { @Value("{#jdbc.driverClassName}")
private String driverClassName;
@Value("{#jdbc.url}")
private String url;
@Value("{#jdbc.username}")
private String username;
@Value("{#jdbc.password}")
private String password; @Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

编写一个jdbc.properties文件

这边只是测试注入,因此没必要真的链接数据库,只有看到注入成功就行,在测试类中测试注入情况。通过打断点debu运行,发现注入成功。

SpringBoo提供了更加优雅的配置,SpringBoot的核心配置文件application.properties
因此删去jdbc.properties,在application.properties在添加相应的内容
修改jdbcConfig类,使用 @ConfigurationProperties注解


@Configuration
//@PropertySource("classpath:jdbc.properties")
public class JdbcConfig { @Bean
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
return new DruidDataSource();
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

再次测试也成功,是不是特别简单的注入。

该项目源码已放在GitHub上,地址是
https://github.com/mingweihua/ming/tree/main/ming-base

博主的坚持 离不开大家关注、评论和点赞,感谢大家支持。护发路上互相扶持!!!

原文章:https://blog.csdn.net/dogHuaMing/article/details/112058153

1-3. SpringBoot基础,Java配置(全注解配置)取代xml配置的更多相关文章

  1. Bean XML 配置(1)- 通过XML配置加载Bean

    系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Contro ...

  2. 基于已构建S2SH项目配置全注解方式简化配置文件

    如果还不熟悉s2sh项目搭建的朋友可以先阅读 eclipse环境下基于tomcat-7.0.82构建struts2项目 eclipse环境下基于已构建struts2项目整合spring+hiberna ...

  3. 【1】springmvc4 + servlet3 零配置全注解入门项目helloword

    自从servlet3.0支持注解,使得javaweb项目使用全注解成为可能. 注解化将成为javaweb的发展方向.包括spring去年推出的spring-boot也是全部使用注解. 代码:https ...

  4. Spring 中的事务操作、注解、以及 XML 配置

    事务 事务全称叫数据库事务,是数据库并发控制时的基本单位,它是一个操作集合,这些操作要么不执行,要么都执行,不可分割.例如我们的转账这个业务,就需要进行数据库事务的处理. 转账中至少会涉及到两条 SQ ...

  5. 死磕Spring之AOP篇 - Spring AOP注解驱动与XML配置

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读. Spring 版本:5.1 ...

  6. spring注解机制和XML配置机制之间的比较

    XML配置的优缺点: 优点有:1. XML配置方式进一步降低了耦合,使得应用更加容易扩展,即使对配置文件进一步修改也不需要工程进行修改和重新编译.2. 在处理大的业务量的时候,用XML配置应该更加好一 ...

  7. Java DB 访问之 mybatis mapper xml 配置方式

    1 项目说明 项目采用 maven 组织 ,jdbc 唯一的依赖就是 mysql-connector-java pom 依赖如下: mysql 数据连接 : mysql-connector-java ...

  8. (D)spring boot使用注解类代替xml配置实例化bean

    bean经常需要被实例化,最常见的就是new一个呗,Bean bean = new Bean(),方便好用还快捷. 然而在我们刚开始学习写i项目的时候却发现,new不好用哦,并且也不报错,根本不知道怎 ...

  9. SSH注解方式与XML配置方式对照表

    一.Hibernate 1.一对多注解 2.单表注解 二.Struts2 Struts2注解 三.Spring 1.IOC注解 2.AOP注解

随机推荐

  1. PowerShell-6.文件操作

    1.显示文本内容 Get-Content "°C:\\Program Files (x86)\\PsUpdate\\b.dat" 2.得到b.dat文件内容,然后把里面的所有'C' ...

  2. 【python】Leetcode每日一题-扁平化嵌套列表迭代器

    [python]Leetcode每日一题-扁平化嵌套列表迭代器 [题目描述] 给你一个嵌套的整型列表.请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数. 列表中的每一项或者为一个整数,或者是另 ...

  3. Nacos使用 MySQL 8.0 提示Public Key Retrieval is not allowed

    原因如下(参考官网给出的连接选项): 如果用户使用了 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥:可以在连 ...

  4. 【maven】pom.xml中"spring-boot-maven-plugin"报红问题

    问题原因 插件下载速度太慢了,即是从国外的中央仓库里下载的. 没有刷新maven spring-boot-maven-plugin没加版本号(有些电脑不加版本号,也是不会爆红的) 问题解决 maven ...

  5. 前端面试 CSS三大特性

    CSS的三大特性 1.层叠性 代码由上向下执行,相同选择器设置到同一元素上,样式冲突的,会执行比较靠近html的样式,样式不冲突的情况下不影响 代码如下 <!DOCTYPE html> & ...

  6. 并查集板子+kruskal

    最近在学最小生成树得时候又用到了并查集,一起来整理一下 1.并查集 并查集就是字面意思,将两个单独得集合合并成一个大的集合. 并查集关键在于两个操作:合并和查找 先要完成查找操作(合并操作在查找的基础 ...

  7. Docker镜像讲解

    Docker镜像讲解 镜像是什么 镜像是一种轻量级的,可执行的独立软件包,用来打包软件运行环境和基于运行环境的开发软件,它包含运行某个软件做需要的所有的内容,包括代码,运行时,库,环境变量和配置文件. ...

  8. 使用小记:Zookeeper中动态改变节点的功能

    Zookeeper 3.5+提供了reconfig功能实现动态配置节点,官方的说明是,"你再也不需要进行全部节点重启"就可以应用所有的修改: http://zookeeper.ap ...

  9. 风变编程(Python自学笔记)第10关-工作量计算器

    1.%f的意思是格式化字符串为浮点型,%.1f的意思是格式化字符串为浮点型,并保留1位小数. 2.向上取整:ceil() 使用ceil()方法时需要导入math模块,例如 1 >>> ...

  10. SQLFlow——一个强大的可视化SQL关系分析工具

    SQLFlow 摘要 本文主要介绍SQLFlow是什么,以及它的功能及使用场景 SQLFlow是什么 SQLFlow是一个可视化的在线处理SQL对象依赖关系的工具,只需要上传你的SQL脚本,它可以自动 ...