动力节点SpringBoot笔记,深入理解Spring的相关配置

本文是SpringBoot学习笔记,详细介绍了如何配置SpringBoot的Web项目,包括主启动类的创建、德鲁伊连接池的配置、属性绑定以及DataSource的注入。通过@ConfigurationProperties和@Bean注解实现自动配置,简化了传统XML配置,使得项目更加简洁高效。

SpringBoot 以其轻量级、内嵌 Web 容器、一键启动、方便调试等特点被越来越多的微服务实践者所采用。

今天这篇博客也是作为springboot的学习笔记,主要说说相关的配置

相关的springboot学习视频

https://www.bilibili.com/video/BV1XQ4y1m7ex

Spring中的相关配置

1.Spring中的web项目

首先需要一个主启动类,作为整个springbootweb项目的入口

package com.fan;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//这是springboot的一个启动器,启动之后就能生产出来一个spring整合的web应用
//注意后面引用的相关组件不能脱离这个启动器所在的包,比如说Controller类
//启动的时候会看见内置的tomcat进行启动,还会通过DispatcherServlet进行映射spring-mvc的Controller
//把xml的配置放到的spring中全注解的配置中
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

2.创建一个德鲁伊的连接池,并且为它进行属性绑定

首先创建一个属性读取类:需要注意的是,属性我们的SpringBoot会默认读取一个Resources下的一个名为:application.propertiees的配置文件,指定这个类的要读取属性文件中要读取属性的前缀则需要在类上添加注解:@ConfigurationProperties(prefix = “jdbc”)就可以读取到:

例如:

jdbc.uername= .....

jdbc.password=.....等相关属性

package com.fan.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
//表示当前类是属性读取类,读取属性文件中的前缀是jdbc,来读取指定的属性
//我们的springboot会默认读取一个名为:application。properties这个属性文件中的属性
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
    private String driverClassName;
    private String url;
    private String username;
    private String password;

    public String getDriverClassName() {
        return driverClassName;
    }

    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

配置文件:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/springboot
jdbc.username=root
jdbc.password=123456

3.需要写一个配置文件,进行注入DataSource连接池中的相关Value

注意:@Configuration声明这个类是一个配置类

@EnableConfiguration(jdbcproperties.class)相当于在spring容器中创建属性读取类,也就是将属性读取类的创建方式交给spring容器进行管理,在我们下面注入dataSource的时候可以直接使用@Autowired进行获取到实例对象

package com.fan.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Autowired;
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
/**
 * 对这个类进行解读:
 * 1.@Configuration:声明我们jdbcConfig是一个配置类
 * 2.@PropertySource:指定属性文件的路径是ClassPath:jdbc.properties
 * 3.@Value:为属性注入值
 * 4.@Bean:将DataSource()方法声明为一个注册Bean的方法,Spring会自动调用该方法,将返回值加入Spring容器中。默认的对象就可以在热议位置通过@Autowired进行注入DataSource了
 *
 */
@EnableConfigurationProperties(JdbcProperties.class)//相当于在spring容器中创建属性读取类
public class JdbcConfig {

    @Bean
    public DataSource dataSource(@Autowired JdbcProperties jdbc){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(jdbc.getDriverClassName());
        dataSource.setUrl(jdbc.getUrl());
        dataSource.setUsername(jdbc.getUsername());
        dataSource.setPassword(jdbc.getPassword());

        return dataSource;
    }
}

4.更优雅的注入方式

//      通过@COnfigurationproperties这个注解,可以将配置文件中前缀是jdbc的属性自动赋值给dataSource中同名的属性当中,一种黑科技的感觉
@Configuration
public class JdbcConfig{
    @Bean
    @ConfigurationProperties(prefix = "jdbc")
    public DataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        return dataSource;
    }
}
### 关于 Spring Boot 的学习资料与动力节点老杜的笔记 Spring Boot 是一个非常流行的 Java 开发框架,旨在简化基于 Spring 的应用开发。对于初学者和进阶开发者来说,掌握 Spring Boot 的核心概念及其生态是非常重要的。以下是一些关于 Spring Boot 的学习资源和建议,特别是与动力节点的老杜相关的资料。 #### 1. 动力节点 Spring Boot 教程 动力节点提供了由王鹤老师主讲的 Spring Boot 系列教程[^1],该教程从基础到高级逐步深入,适合不同阶段的学习者。课程内容涵盖 Spring Boot 的核心功能、常用组件以及最新版本的功能特性(如 Spring Boot 2.x 系列)。教程还包含实际案例,帮助学习者快速上手并掌握 Spring Boot 的开发技巧。 #### 2. Spring Boot 容器启动后执行任务的接口 在实际开发中,有时需要在 Spring Boot 应用启动后执行某些初始化任务,例如读取配置文件或建立数据库连接。Spring Boot 提供了两个主要接口来实现这一需求:`CommandLineRunner` 和 `ApplicationRunner`[^2]。以下是这两个接口的基本使用示例: ```java import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; @Component public class MyCommandLineRunner implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("容器启动后执行的任务"); } } ``` #### 3. Spring Boot 与传统 Spring 集成的对比 如果之前熟悉传统的 Spring 框架,可能会对 Spring Boot 的自动化配置感到陌生。动力节点的教程中提到,传统 Spring 配置通常需要手动配置类库、修改 `web.xml` 文件以及提供额外的配置文件(如 `struts-config.xml`)[^3]。而 Spring Boot 则通过自动配置机制大幅简化了这些步骤,使得开发者可以专注于业务逻辑的实现。 #### 4. 学习建议与资源推荐 - **官方文档**:Spring Boot 的官方文档是权威的学习资源,涵盖了框架的所有功能和最佳实践[^1]。 - **书籍推荐**: - 《Spring Boot 实战》:详细介绍了 Spring Boot 的核心概念和实战技巧。 - 《Spring Boot 核心技术与最佳实践》:适合有一定基础的学习者。 - **在线视频**:动力节点的老杜系列教程是一个很好的起点,尤其是针对初学者的内容。 - **社区支持**:参与 Spring Boot 社区讨论,了解最新的开发趋势和技术更新。 #### 5. 年龄与编程的关系 无论年龄大小,学习编程和技术都是可行的。正如老杜在直播中提到的,35 岁以后依然可以从事编码工作,并且可以通过转型为项目经理或产品经理来拓展职业路径[^4]。关键在于保持对技术的热情和持续学习的态度。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值