springboot中的日志:

在默认的spring-boot-starter中,会引入spring-boot-starter-logging,

而springboot-starte-longing中引入了:slf4j规范和logback默认实现。

springboot对jdbc的支持:

引入依赖:

         <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

点进去实际上就是依赖:

 <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.1.5.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.2.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.7.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>

一个连接池,一个spring-jdbc的包。这个的好处就是,通过条件注解来决定是否把jdbc-template装载到ioc容器中:

@Configuration
@ConditionalOnClass({ DataSource.class, JdbcTemplate.class })
@ConditionalOnSingleCandidate(DataSource.class)
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcTemplateAutoConfiguration { @Configuration
static class JdbcTemplateConfiguration { private final DataSource dataSource; private final JdbcProperties properties; JdbcTemplateConfiguration(DataSource dataSource, JdbcProperties properties) {
this.dataSource = dataSource;
this.properties = properties;
} @Bean
@Primary
@ConditionalOnMissingBean(JdbcOperations.class)
public JdbcTemplate jdbcTemplate() {
JdbcTemplate jdbcTemplate = new JdbcTemplate(this.dataSource);
JdbcProperties.Template template = this.properties.getTemplate();
jdbcTemplate.setFetchSize(template.getFetchSize());
jdbcTemplate.setMaxRows(template.getMaxRows());
if (template.getQueryTimeout() != null) {
jdbcTemplate
.setQueryTimeout((int) template.getQueryTimeout().getSeconds());
}
return jdbcTemplate;
} } @Configuration
@Import(JdbcTemplateConfiguration.class)
static class NamedParameterJdbcTemplateConfiguration { @Bean
@Primary
@ConditionalOnSingleCandidate(JdbcTemplate.class)
@ConditionalOnMissingBean(NamedParameterJdbcOperations.class)
public NamedParameterJdbcTemplate namedParameterJdbcTemplate(
JdbcTemplate jdbcTemplate) {
return new NamedParameterJdbcTemplate(jdbcTemplate);
} } }

spring中多数据源问题:

简单的可以借助AbstractRoutingDataSource这个抽象类,结合aop来实现动态切换。

springboot的实现:

@Configuration
public class JdbcDataSourceConfig { /**
* 配置连接属性1
* 前缀后面的属性要与DataSourceProperties类中的属性对应
* @return
*/
@Bean
@ConfigurationProperties(prefix = "app.datasource.db1")
public DataSourceProperties db1Properties(){
return new DataSourceProperties();
} /**
* 配置连接属性2
* 前缀后面的属性要与DataSourceProperties类中的属性对应
* @return
*/
@Bean
@ConfigurationProperties(prefix = "app.datasource.db2")
public DataSourceProperties db2Properties(){
return new DataSourceProperties();
} /**
* 使用属性配置信息构建一个DataSource
* @return
*/
@Bean
public DataSource db1DataSource(){
return db1Properties().initializeDataSourceBuilder().build();
} @Bean
public DataSource db2DataSource(){
return db2Properties().initializeDataSourceBuilder().build();
} /**
* 不单独配置bean的名称了,使用方法名作为默认名称
* @return
*/ @Bean
public JdbcTemplate templateOne(){
return new JdbcTemplate(db1DataSource());
} @Bean
public JdbcTemplate templateTwo(){
return new JdbcTemplate(db2DataSource());
} }

测试代码:

@SpringBootTest(classes= Application.class)
@RunWith(SpringRunner.class)
public class JdbcTest { @Autowired
JdbcTemplate templateOne; @Test
public void test() throws Exception{ String sql="insert into user(name,age) values('aa',18)";
templateOne.execute(sql);
} }

报错:

因为在将DataSourceProperties去注入到DataSource的时候发现存在多个DataSourceProperties的bean。因为去无论是db1Properties方法还是还是db2Properties都是返回一个DataSourceProperties,springboot无法根据上下文去推导,是需要哪个注入。jdbctemplate 通过bean的名字指定需要加载哪一个。

Actuator:springboot的监控服务:

引入:

  <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

启动应用: 访问: http://localhost:8080/actuator

springboot补充的更多相关文章

  1. Spring Boot 集成 RabbitMQ 实战

    Spring Boot 集成 RabbitMQ 实战 特别说明: 本文主要参考了程序员 DD 的博客文章<Spring Boot中使用RabbitMQ>,在此向原作者表示感谢. Mac 上 ...

  2. springboot 快速开发的定制补充

    增强 SpringBoot 快速开发工具 项目地址:https://gitee.com/sanri/web-ui 优点:这是一个 web 通用配置的组件,即插即用,可用于新项目或私活.是对 Sprin ...

  3. springboot项目抓数据后优化配置及四个补充

    昨天搞了一个抓取某某平台信息的抓取功能,其中有一个地址url,昨天是写死的,之前也进行配置过,印象有些模糊,今天想配置一下,在properties文件中,由此引发了下面的一系列总结操作: 1.原始模式 ...

  4. SpringBoot系列: Spring MVC视图方法的补充

    SpringMVC 视图方法的参数, 已经在这个文章中写得非常清楚了, 链接为 https://www.cnblogs.com/morethink/p/8028664.html 这篇文章做一些补充. ...

  5. springboot知识点补充(一)

    测试配置 @RunWith(SpringRunner.class) @SpringBootTest @Configuration @ActiveProfiles("test") p ...

  6. IntelliJ IDEA 2017版 SpringBoot的web项目补充

    一.注解        @SpringBootApplication:Spring Boot项目的核心注解,主要目的是开启自动配置.        @Configuration:这是一个配置Sprin ...

  7. IntelliJ IDEA 2017版 spring-boot基础补充,原理详解

    一.Spring发展史  1.Spring1.x       版本一时代主要是通过XML文件配置bean,在java和xml中不断切换,在学习java web 初期的时候经常使用  2.Spring2 ...

  8. 补充: SpringBoot

    SpringBoot Spring Boot  约定大于配置 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程. 该框 ...

  9. springboot之对之前的补充

    Spring Cloud 初级 一. Spring Boot 回顾   1 什么是 Spring Boot?   Spring Boot 是在 Spring 的基础之上产生的(确切的说是在 Sprin ...

随机推荐

  1. C++代码雨

    闲逛的时候发现了一个很好玩的程序 摘自:https://blog.csdn.net/u012837895/article/details/20849967#comments 效果如下 #include ...

  2. Typora设置Vue主题

    平时看视频,发现好多老师使用 Typora 时,界面跟我的不一样,好看一些,后来查了下才知道老师使用了Vue主题,接下来我就记录下设置Vue主题的步骤吧 一.下载Vue主题 地址:http://the ...

  3. 力扣 - 232. 用栈实现队列.md

    目录 题目 思路 代码实现 复杂度分析 题目 请你仅使用两个栈实现先入先出队列.队列应当支持一般队列的支持的所有操作(push.pop.peek.empty): 实现 MyQueue 类: void ...

  4. Cuda常用概念及注意点

    线程的索引计算 只需要知并行线程的初始索引,以及如何确定递增的量值,我们希望每个并行线程从不同的索引开始,因此就需要对线程索引和线程块索引进行线性化,每个线程的其实索引按照以下公式来计算: int t ...

  5. PS中抠图的四种方法介绍

    工具/原料 photoshop 软件(我用的是photoshop cc) 需要抠图的图片 开始的步骤 打开ps 打开图片,ctrl+O 魔棒抠图法 对于前景和后景有明显差别的图片用魔棒抠图法抠图比较容 ...

  6. .NET 5 中的隐藏特性

    前言 双十一当天 .NET 5 正式发布带来了很多的新特性和改进,个人觉得非常香,并且花了 10 分钟时间就把自己的 4 个 .NET Core 3.1 的项目升级到了 .NET 5,堪称无痛. 但是 ...

  7. Java iText+FreeMarker生成PDF(HTML转PDF)

    1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等.方便用户查看,下载,打印.目前常用的解决方案是,把相关数据信息,生成对应的pdf文件返回给用户. ...

  8. [MIT6.006] 10. Open Addressing, Cryptographic Hashing 开放定址,加密哈希

    前几节课讲散列表的时候,我们需要用Chaining,链接法需要用到指针pointer,但有一种方法可以不要Chaining和指针,还能在发生冲突时,为产生冲突的关键字寻找下一个"空" ...

  9. nginx安装 linux

    1.安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2.创建一个文件夹 cd /usr/local m ...

  10. 配置内网访问的TV

    前言 通过内网模式访问tv远程机器 方法 云主机配置 一台云主机,云主机申请两个公网IP 云主机启动两个frps进程绑定到两个内网的ip 客户端配置 远程一台linux跳板机运行frpc,启动两个进程 ...