1. 程式人生 > >springboot實戰(1)springboot基本配置

springboot實戰(1)springboot基本配置

1 入口類和@SpringBootApplication

package com.wuk.springbootHello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication//開啟自動配置
public class SpringbootHelloApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootHelloApplication.class, args);
	}
	
	@RequestMapping("/")
	public String index(){
		
		return "hello spring boot";
	}
}

http://127.0.0.1:8080/
執行結果:

hello spring boot

在這裡插入圖片描述

2 定製banner

1 定製自己的banner

在這裡插入圖片描述
圖片定製地址:http://patorjk.com/software/taag

2 關閉banner

在這裡插入圖片描述

3 外部配置

springboot允許使用properties檔案,yaml檔案或者命令列引數作為外部配置。

1 命令列引數配置

在這裡插入圖片描述

2 常規性配置

application.properties

server.port=9090

book.author=wuk
book.name=spring boot
@RestController
@SpringBootApplication//開啟自動配置
public class SpringbootHelloApplication {

	@Value("${book.author}")
	private String bookAuthor;
	
	@Value("${book.name}")
	private String bookName;
	
	public static void main(String[] args) {
		SpringApplication.run(SpringbootHelloApplication.class, args);
	}
	
	@RequestMapping("/")
	public String index(){
		
		return "bookAuthor="+bookAuthor+",bookName="+bookName;
	}
}

http://127.0.0.1:9090/
結果:

bookAuthor=wuk,bookName=spring boot

3 型別安全的配置(基於properties)

要注意 1.4版本的已經摒棄了@ConfigurationProperties的locations屬性,那麼解決辦法是:

@Component//把普通pojo例項化到spring容器中
@ConfigurationProperties(prefix="author")//prefix="author"指定配置字首 
@PropertySource("classpath:/config/my.properties")

案例如下:
my.properties

author.name=wuk
author.age=12

具體的實體類

package com.wuk.springbootHello;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;

@Component//把普通pojo例項化到spring容器中
@ConfigurationProperties(prefix="author")//prefix="author"指定配置字首 
@PropertySource("classpath:/config/my.properties")
public class Author {

	private String name;
	private String age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	
	
}

啟動類

package com.wuk.springbootHello;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication//開啟自動配置
public class SpringbootHelloApplication {

	@Autowired
	private Author author;
	
	public static void main(String[] args) {
		SpringApplication.run(SpringbootHelloApplication.class, args);
	}
	
	@RequestMapping("/")
	public String index(){
		
		return "authorName="+author.getName();
	}
}

結果:
在這裡插入圖片描述

4 日誌配置

市面上的日誌框架;
JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j….

日誌門面 (日誌的抽象層) 
JCL(Jakarta Commons Logging) SLF4j(Simple Logging
Facade for Java) jboss-logging

日誌實現
Log4j JUL(java.util.logging)
Log4j2 Logback

最佳組合
日誌門面: SLF4J;
日誌實現:Logback;

SpringBoot:
底層是Spring框架,Spring框架預設是用JCL;‘
SpringBoot選用 SLF4j和logback;

springboot日誌的使用

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(HelloWorld.class);
    logger.info("Hello World");
  }
}

注意:以後開發的時候,日誌記錄方法的呼叫,不應該來直接呼叫日誌的實現類,而是呼叫日誌抽象層裡面的方法; 給系統裡面匯入slf4j的jar和 logback的實現jar。

5 profile配置

在這裡插入圖片描述
prod為生產環境,dev為開發環境。
首先建立如下檔案:
在這裡插入圖片描述
application-dev.properties

server.port=8888

application-prod.properties

server.port=80

application.properties

spring.profiles.active=prod  //表示當前的環境為生產環境 

執行結果:
在這裡插入圖片描述

springboot執行原理

1 檢視springboot做了哪些自動配置

可以通過如下方式檢視當前專案已啟用和未啟用的自動配置的報告:

(1)執行jar時候增加–debug引數

java  -jar xx.jar --debug 

(2)在application.properties中:

debug=true