SpringBoot のメモ - Spring の関連構成の詳細な説明

SpringBoot は、その軽量な組み込み Web コンテナー、ワンキー起動、便利なデバッグにより、ますます多くのマイクロサービス実践者に採用されています。

今日のブログはspringbootの勉強記でもあり、主に関連する設定について話します

関連する Springboot 学習ビデオ

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

Spring の関連構成

1. 春のWebプロジェクト

まず、springboot Web プロジェクト全体のエントリ ポイントとして、メインのスタートアップ クラスが必要です。

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. Druid 接続プールを作成し、属性バインディングを実行します。

まず、プロパティ読み取りクラスを作成します。 SpringBoot のプロパティは、デフォルトで Resources の下にある application.properties という名前の構成ファイルを読み取り、このクラスのプロパティ ファイルで読み取られるプロパティを指定することに注意してください。プレフィックスは次のとおりです。クラスに注釈が付けられた @ConfigurationProperties (プレフィックス = "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 接続プールに関連する値を挿入するための構成ファイルを作成する必要がある

注: @Configuration は、このクラスが構成クラスであることを宣言します。

@EnableConfiguration(jdbcproperties.class)は、Springコンテナにプロパティ読み込みクラスを作成すること、つまりプロパティ読み込みクラスの作成メソッドをSpringコンテナに渡して管理することに相当します。 @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;
    }
}

Acho que você gosta

Origin blog.csdn.net/weixin_54585403/article/details/123504928
Recomendado
Clasificación