spring boot學習簡要筆記1
1.resource資料夾下的目錄結構
static:靜態資源:js,css,images
templates:儲存模板頁面(例如:spring boot預設jar包使用嵌入式的tomcat,所以是不支援jsp的,但可以使用模板引擎)
application.properties:spring boot應用的配置檔案yaml,properties
2.配置檔案
spring boot預設有application.properties,application.yaml兩個為全域性配置檔案,用於修改spring boot在底層給我們預設配置好的一些預設值
yaml以資料為中心,比json、xml更適合作為配置檔案
yaml:
server:
port: 8081
xml:
<server>
<port>8081</port>
</server>
使用yaml配置檔案可以向我們的Javabean配置基本值
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Date brith;
private Map<String,Object> maps;
private List<Object> list;
private Dog dog;
}
person:
lastName: key.l
age: 18
brith: 2019/10/24
maps: {k1: v1,k2: v2}
list:
-1
-2
dog:
name: dog
age: 1
這裡需要注意的點是,使用@ConfigurationProperties這個註解的時候我們應該需要一個spring-boot-configuration-processor的驅動,需要這個驅動來從配置檔案中獲取配置的值。
然後在spring boot 的test資料夾裡面進行測試。就可以了,這下面是我的控制檯列印資訊
Person{lastName='key.l', age=18, brith=Thu Oct 24 00:00:00 CST 2019, maps={k1=v1, k2=v2}, list=[-1 -2], dog=Dog{name='dog', age=1}}
同樣能實現註冊的還有@Value,例如
@Component
//@ConfigurationProperties(prefix = "person")
public class Person {
@Value(${SpEL})
private String lastName;
private Integer age;
private Date brith;
private Map<String,Object> maps;
private List<Object> list;
private Dog dog;
}
但是@Value相對於@ConfigurationProperties的缺點是不支援JR303資料校驗和鬆散繫結。並且最致命的是複雜型別的封裝問題會十分麻煩
總結:
如果只是在業務邏輯中用到一下值,我們可以用value來進行賦值
如果我們用專門的Javabean物件與配置檔案進行對映,最好是用configurationproperties
3.@PropertySource和@ImportResource
@PropertySource:載入指定配置檔案
@ImportResource:匯入我們的spring的配置檔案,讓配置檔案的內容生效,springboot裡面沒有包括spring的配置檔案,也無法自動識別,想讓spring的配置檔案就需要用importResource匯入進來。把@ImportResource標記在主配置類上面。
新建一個HelloService類後我們寫一個xml配置一下測試
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloService" class="com.cheerful.springboot.service.HelloService"/>
</beans>
@Autowired
ApplicationContext ioc;
@Test
public void test(){
boolean helloService = ioc.containsBean("helloService");
System.out.println(helloService);
}
列印的是false
@ImportResource({"classpath:beans.xml"})
把這行程式碼加到spring boot主類上面,已匯入beans.xml的spring配置檔案。
然後spring boot推薦的方式是全註解的形式進行開發;
所以這裡我們就可以用寫一個配置類的方式來代替配置檔案。
@Configuration
public class MyAppConfig {
//將方法的返回值返回到容器中去,容器中元件預設的id就是方法名
@Bean
public HelloService helloService(){
return new HelloService();
}
}
4.profile
profile是spring對不同環境提供不同配置功能的支援,可以以啟用、指定引數等方式來快速的切換環境
1.yaml
server:
port: 8081
spring:
profiles:
active: dev
---
server:
port: 8082
spring:
profiles: dev
---
server:
port: 8083
spring:
profiles: product
2.多profile檔案形式:
application-{profile}.properties;
3.命令列,配置檔案,虛擬機器啟用
命令列–spring.profiles.active=dev
配置檔案spring.profiles.active=dev
虛擬機器-Dspring.profiles.active=dev
5.配置檔案載入位置
spring boot啟動會掃描這些位置的application.yaml或者properties作為配置檔案。
file的config目錄或者根目錄,classpath的config目錄或者根目錄。並且優先順序由先後順序覆蓋相同的配置資訊,不同的配置資訊進行互補配置。
我們以可以通過spring.config.location更改預設配置
以及通過jar包外,包內的配置檔案都是可以的
6.SLF4J的使用
開發的時候,日誌方法的呼叫應該呼叫抽象層的方法,而不是直接呼叫實現類裡面的
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");
}
}
2.如何讓系統中其他的日誌框架都移到slf4j:
將系統中其他的日誌框架排除,再用中間包來替換原有的日誌框架,在匯入slf4j其他的實現
相關文章
- Spring Boot 學習筆記(1):快速上手Spring Boot筆記
- Spring Boot 學習筆記(4):配置properties(1)Spring Boot筆記
- Spring Boot學習筆記:Spring Boot核心配置Spring Boot筆記
- Spring Boot 學習筆記(3):MyBatisSpring Boot筆記MyBatis
- Spring Boot 學習筆記(2):JDBCSpring Boot筆記JDBC
- Java Spring Boot 學習筆記(一)JavaSpring Boot筆記
- Spring boot + Zookeeper + Dubbo學習筆記Springboot筆記
- spring學習筆記(1)Spring筆記
- Spring框架學習筆記(1)Spring框架筆記
- Spring Boot 學習筆記(5):日誌配置Spring Boot筆記
- Spring Boot 學習筆記(4):配置properties(2)Spring Boot筆記
- spring cloud Alibaba 之 spring boot 基礎學習筆記CloudSpring Boot筆記
- Spring入門筆記簡要Spring筆記
- Spring Boot學習筆記---Spring Boot 基礎及使用idea搭建專案Spring Boot筆記Idea
- 什麼是Spring Boot?為什麼要學習Spring Boot?Spring Boot
- spring boot實戰讀書筆記(1)Spring Boot筆記
- SpringCloud學習筆記:SpringCloud簡介(1)SpringGCCloud筆記
- IO——簡略的學習筆記(1)筆記
- Java | Spring框架學習筆記--(1)工廠JavaSpring框架筆記
- spring學習筆記Spring筆記
- Spring 學習筆記Spring筆記
- spring boot AOP筆記Spring Boot筆記
- LTE-5G學習筆記1---記憶要點筆記
- Spring學習筆記(一)Spring筆記
- Spring Boot 學習 (1): 初始化工程Spring Boot
- 學習筆記1筆記
- 學習筆記-1筆記
- Spring 學習筆記(2) Spring BeanSpring筆記Bean
- Spring 學習筆記(3)Spring MVCSpring筆記MVC
- Spring學習記錄1Spring
- 比特幣學習筆記——————1、比特幣簡介比特幣筆記
- spring boot學習Spring Boot
- Spring Boot 學習Spring Boot
- spring boot學習與踩坑記錄Spring Boot
- Spring Boot中整合機器學習簡介Spring Boot機器學習
- Spring boot學習(六)Spring boot實現AOP記錄操作日誌Spring Boot
- Spring boot學習(三) Spring boot整合mybatisSpring BootMyBatis
- Spring boot學習(四)Spring boot整合DruidSpring BootUI