01_SpringBoot 入门案例
张创琦 2022.03.10
相关配置看文件说明。此处只展示代码和运行结果。
目录结构
pom.xml
<?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><groupId>com.lxs</groupId><artifactId>spring-boot-demo</artifactId><version>1.0-SNAPSHOT</version><properties><java.version>1.8</java.version></properties><!-- 添加父坐标工程 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.0.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency></dependencies></project>
application.properties (原名:jdbc.properties)
jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/ssm1jdbc.username=rootjdbc.password=123456
Application.java
package com.lxs;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}
HelloController.java
package com.lxs.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import javax.sql.DataSource;@RestControllerpublic class HelloController {@Autowiredprivate DataSource dataSource;@GetMapping("/hello")public String hello(){return "hello, spring boot! " + dataSource;}}
JdbcConfig.java
方法1: 通过value注解
package com.lxs.config;import com.alibaba.druid.pool.DruidDataSource;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;// 注意这里的包是sql的!!!import javax.management.MXBean;import javax.sql.DataSource;@Configuration@PropertySource("classpath:application.properties")public class JdbcConfig {@Value("${jdbc.url}")String url;@Value("${jdbc.driverClassName}")String driverClassName;@Value("${jdbc.username}")String username;@Value("${jdbc.password}")String password;@Beanpublic DataSource dataSource(){DruidDataSource dataSource = new DruidDataSource();dataSource.setUrl(url);dataSource.setDriverClassName(driverClassName);dataSource.setUsername(username);dataSource.setPassword(password);return dataSource;}}
方法2: 通过EnableConfigurationProperties注解
package com.lxs.config;import com.alibaba.druid.pool.DruidDataSource;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;// 注意这里的包是sql的!!!import javax.management.MXBean;import javax.sql.DataSource;@Configuration@EnableConfigurationProperties(JdbcProperties.class)public class JdbcConfig {@Beanpublic DataSource dataSource(JdbcProperties jdbc){DruidDataSource dataSource = new DruidDataSource();dataSource.setUrl(jdbc.getUrl());dataSource.setDriverClassName(jdbc.getDriverClassName());dataSource.setUsername(jdbc.getUsername());dataSource.setPassword(jdbc.getPassword());return dataSource;}}
运行结果展示
Tomcat initialized with port(s): 8080 (http)Servlet dispatcherServlet mapped to [/]Mapped "{[/hello],methods=[GET]}" onto public java.lang.String com.lxs.controller.HelloController.hello()
debug相关结果展示:
松散绑定
(未调试,记得调试)
举例:
可以将application.properties中的驼峰命名方式转换,
比如将 jdbc.driver_class_name 在 jdbcConfig 中可以转换为 jdbc.driverClassName 。
更优雅的注入
比如:删掉 JdbcProperties
JdbcConfig.java
package com.lxs.config;import com.alibaba.druid.pool.DruidDataSource;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;// 注意这里的包是sql的!!!import javax.management.MXBean;import javax.sql.DataSource;@Configurationpublic class JdbcConfig {// 自动将同名属性配置,高科技!@Beanpublic DataSource dataSource(){DruidDataSource dataSource = new DruidDataSource();return dataSource;}}
