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.项目接口

数据库连接结果也被打印到控制台了.

原文地址:https://www.cnblogs.com/fps2tao/p/13815927.html