1. 程式人生 > 實用技巧 >SpringBoot入門二(java程式碼方式配置)

SpringBoot入門二(java程式碼方式配置)

java程式碼方式配置(讀取配置檔案中的變數)

一 . 先了解幾個相關注解

java配置主要靠java類和一些註解,比較常用的註解有:

@Configuration:宣告一個類作為配置類,代替xml檔案
@Bean:宣告在方法上,將方法的返回值加入Bean容器,代替<bean>標籤
@Value:屬性注入
@PropertySource:指定外部屬性檔案

二. 實戰~

目的:比如可以把xml裡面的資料庫配置資訊,用java程式碼方式配置

實現步驟:

1.新增依賴(新增Alibaba的druid資料庫連線)

2.建立資料庫

3.建立資料庫連線引數的配置檔案jdbc.properties

4.建立編寫配置類

5.控制器 注入資料來源並使用

=================

1.新增依賴pom.xml(新增Alibaba的druid資料庫連線)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
> <modelVersion>4.0.0</modelVersion> <!--SpringBoot父工程--> <parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.3.4.RELEASE</version> </parent
> <groupId>org.cc8w</groupId> <artifactId>javaboot_test</artifactId> <version>1.0-SNAPSHOT</version> <!--java編譯版本,父工程已經指定了這樣的變數--> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!--SpringBoot Web啟動器(不用寫版本跟隨父版本)--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.20</version> </dependency> </dependencies> </project>

2.建立資料庫(略)

3.建立資料庫連線引數的配置檔案jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mini_card
jdbc.username=root
jdbc.password=89757

4.建立編寫配置類

package com.cc8w.config;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import javax.sql.DataSource;

@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;
    }

}

5.控制器 注入資料來源並使用

package com.cc8w.home.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.sql.DataSource;

@RestController
@RequestMapping("home/test")
public class JdbcTest {

    @Autowired
    private DataSource dataSource;

    @RequestMapping("jtest")
    public String jTest(){

        System.out.println(dataSource);
        System.out.println("jTest22");
        return "null";
    }


}

6.專案介面

資料庫連線結果也被列印到控制檯了.