关键词:
一、SpringBoot 属性注入方式一
1、修改jdbc.properties文件的名称
2、创建JdbcProperties类
package com.itzheng.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties
public class JdbcProperties
String url;
String driverClassName;
String username;
String password;
3、完善pom.xml添加
先安装Lombok
引入Lombok
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
4、完善JdbcProperties
添加@Data后会自动生成set和get方法
package com.itzheng.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "jdbc")
@Data
public class JdbcProperties
String url;
String driverClassName;
String username;
String password;
5、修改JdbcConfig类使用JdbcProperties(启用配置属性)
package com.itzheng.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
@Configuration //声明一个类作为配置类,代替xml文件
//@PropertySource("classpath:application.properties")
@EnableConfigurationProperties(JdbcProperties.class) //使用配置属性
public class JdbcConfig
// @Value("$jdbc.url")
// String url;
// @Value("$jdbc.driverClassName")
// String driverClassName;
// @Value("$jdbc.username")
// String username;
// @Value("$jdbc.password")
// String password;
@Bean //声明在方法上,将方法返回值加入Bean容器,代替<bean>标签
public DataSource dataSource(JdbcProperties prop)
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(prop.getDriverClassName());
dataSource.setUrl(prop.getUrl());
dataSource.setUsername(prop.getUsername());
dataSource.setPassword(prop.getPassword());
return dataSource;
6、运行代码
添加断点
7、可以在任意位置使用
二、SpringBoot 属性注入方式二
1、修改JdbcProperties
2、修改JdbcConfig
@Bean //声明在方法上,将方法返回值加入Bean容器,代替<bean>标签
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource()
return new DruidDataSource();
全部代码
package com.itzheng.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
@Configuration //声明一个类作为配置类,代替xml文件
//@PropertySource("classpath:application.properties")
//@EnableConfigurationProperties(JdbcProperties.class) //使用配置属性
public class JdbcConfig
// @Value("$jdbc.url")
// String url;
// @Value("$jdbc.driverClassName")
// String driverClassName;
// @Value("$jdbc.username")
// String username;
// @Value("$jdbc.password")
// String password;
// @Autowired
// JdbcProperties jdbcProperties;
//
// public JdbcConfig(JdbcProperties jdbcProperties)
// this.jdbcProperties = jdbcProperties;
//
/*
@Bean //声明在方法上,将方法返回值加入Bean容器,代替<bean>标签
public DataSource dataSource(JdbcProperties prop)
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(prop.getDriverClassName());
dataSource.setUrl(prop.getUrl());
dataSource.setUsername(prop.getUsername());
dataSource.setPassword(prop.getPassword());
return dataSource;
*/
@Bean //声明在方法上,将方法返回值加入Bean容器,代替<bean>标签
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource()
return new DruidDataSource();
3、重新运行
三、SpringBoot 属性注入方式三yaml注入
1、创建application.yaml
使用更优雅的方式下配置文件
jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/itzheng
username: root
password: 123
user:
name: jack
age : 21
language:
- java
- python
- andorid
- sql
2、完善JdbcProperties
package com.itzheng.config;
import com.sun.org.apache.xpath.internal.operations.String;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.List;
//@ConfigurationProperties(prefix = "jdbc")
@Data
public class JdbcProperties
String url;
String driverClassName;
String username;
String password;
User user = new User();
class User
String name;
Integer age;
List<String> language;
四、自动配置
1、@SpringBootApplication
这个注解的作用与@Configuration作用相同
都是用来声明当前类是一个配置类
可以通过@Bean注解生成IOC容器管理的bean
在QuickStartApplication中定义bean
并在@HelloController中注入使用
下面是@HelloController
留下一个即可
2、覆盖WebMvcProperties配置服务器相关内容
在application.yaml当中
3、总结
SpringBoot为我们提供了默认配置,而默认配置生效的条件一般有两个;
你引入了相关依赖
你自己没有配置Bean
1)启动器
所以,我们如果不想配置,
只需要引入依赖即可,而依赖版本我们也不用操心,
因为只要引入了SpringBoot提供的stater(启动器),就会自动管理依赖及版本了。
因此,玩SpringBoot的第一件事情,就是找启动器,SpringBoot提供了大量的默认启动器
2)全局配置
另外,SpringBoot的默认配置,都会读取默认属性,而这些属性可以通过自定义
application.properties
文件来进行覆盖。这样虽然使用的还是默认配置,
但是配置中的值改成了我们自定义的。
因此,玩SpringBoot的第二件事情,
就是通过 application.properties来覆盖默认属性值,
形成自定义配置。
我们需要知道SpringBoot的默认属性key,非常多。
java微服务day02源代码springboot实战开发整合jdbc和事务(数据库连接池)(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务day02源代码springboot实战开发创建相关数据库,搭建服务,搭建普通工程,设置访问后缀以及端口号(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务day01源代码springboot的springmvc快速入门(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务day02源代码springboot实战开发整合mybatis(数据库连接池),通用mapper整合,业务层整合(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务day01源代码java的配置(代码片段)
Java微服务day01源代码SpringBoot的SpringMVC快速入门(一)Java微服务day01源代码Java的配置(二)Java微服务day02源代码SpringBoot属性注入自动配置(一)Java微服务day02源代码SpringBoot实战开发(二)创建相关... 查看详情
java微服务之springcloud快速入门day02feign(代码片段)
Java微服务之SpringCloud快速入门day02(二)Feign一、Feign在前面的学习中,我们使用了Ribbon的负载均衡功能,大大简化了远程调用时的代码:StringbaseUrl="http://user-service/user/";Useruser=this.restTemplate.get 查看详情
java微服务之springcloud快速入门day02feign(代码片段)
Java微服务之SpringCloud快速入门day02(二)Feign一、Feign在前面的学习中,我们使用了Ribbon的负载均衡功能,大大简化了远程调用时的代码:StringbaseUrl="http://user-service/user/";Useruser=this.restTemplate.get 查看详情
springcloud学习笔记day01(代码片段)
...要求:java8+mven+git、github+Nginx+RabbitMQ+SpringBoot2.02.JVM/JUC/JMM/GC/Nginx……2.微服务架构理论入门2.1.微服务架构概述什么是微服务?微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务ÿ... 查看详情
springcloud学习笔记day01(代码片段)
...要求:java8+mven+git、github+Nginx+RabbitMQ+SpringBoot2.02.JVM/JUC/JMM/GC/Nginx……2.微服务架构理论入门2.1.微服务架构概述什么是微服务?微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务ÿ... 查看详情
java微服务之springcloud快速入门day02zuul网关,面向服务的路由,zuul过滤器(代码片段)
Java微服务之SpringCloud快速入门day02(三)Zuul网关一、简介1、相关概念官网:https://github.com/Netflix/zuulZuul:维基百科:电影《捉鬼敢死队》中的怪兽,Zuul,在纽约引发了巨大强乱。事实上,在微服务架构中... 查看详情
java微服务之springcloud快速入门day02zuul网关,面向服务的路由,zuul过滤器(代码片段)
Java微服务之SpringCloud快速入门day02(三)Zuul网关一、简介1、相关概念官网:https://github.com/Netflix/zuulZuul:维基百科:电影《捉鬼敢死队》中的怪兽,Zuul,在纽约引发了巨大强乱。事实上,在微服务架构中... 查看详情
java微服务之springcloud快速入门day02hystrix线程隔离,服务降级(代码片段)
Hystrix1、简介Hystrix,英文意思是豪猪,全身都是刺,看起来就不好惹,是一种保护机制。Hystrix也是Netflix公司的一款组件。主页:https://github.com/Netflix/Hystrix那么Hystrix的作用是什么呢?具体要保护什么呢ÿ... 查看详情
java微服务之springcloud快速入门day02hystrix线程隔离,服务降级(代码片段)
Hystrix1、简介Hystrix,英文意思是豪猪,全身都是刺,看起来就不好惹,是一种保护机制。Hystrix也是Netflix公司的一款组件。主页:https://github.com/Netflix/Hystrix那么Hystrix的作用是什么呢?具体要保护什么呢ÿ... 查看详情
java微服务之springcloud快速入门day01eureka注册中心高级部分(集群)(高可用)(代码片段)
...建立的eureka-server服务提供者提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,只要对外提供的是Rest风格服务即可。本例中就是我 查看详情
java微服务之springcloud快速入门day01eureka注册中心高级部分(集群)(高可用)(代码片段)
...建立的eureka-server服务提供者提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,只要对外提供的是Rest风格服务即可。本例中就是我 查看详情
java之springcloud微服务搭建网关springcloudgateway微服务网关gateway(第三个阶段)springboot项目实现商品服务器端是调用(代码片段)
...oudGateway微服务网关GateWay(第三个阶段)【二】【SpringBoot项目实现商品服务器端是调用】一、微服务网关GateWay1、Gateway简介(1)简介(2)核心概念二、入门案例1、入门案例(1)创建工程导入依赖&... 查看详情
springcloud学习笔记day01(代码片段)
...要求:java8+mven+git、github+Nginx+RabbitMQ+SpringBoot2.02.JVM/JUC/JMM/GC/Nginx……2.微服务架构理论入门2.1.微服务架构概述什么是微服务?微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务ÿ... 查看详情
java微服务之springcloud快速入门day01初始springcloud(代码片段)
一、SpringCloud的简介微服务是一种架构方式,最终肯定需要技术架构去实施。微服务的实现方式很多,但是最火的莫过于SpringCloud了。为什么?后台硬:作为Spring家族的一员,有整个Spring全家桶靠山,背景十分强大。... 查看详情