使用Spring Boot的起步依赖
使用Spring Boot 你不用在具体取操作使用这个我要注入那些Bean, 添加哪些jar包依赖,只需要告诉Spring Boot你需要什么就可以了,它会自动给你加载好你需要的功能的起步依赖,你不用关心我要加载哪一个依赖,注入什么样的Bean, 你只要在资源文件里,配置好注入的类的属性即可
之前用到的主要起步依赖简介
Mybatis依赖,集成Mybatis
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
添加
thymeleaf的依赖,作为web视图
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
声明web应用,添加web应用的基础依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
为了能够测试,集成的测试库
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
同时可以在资源文件中使用一些预先规定的属性来修改注入的类的属性,一些常用的属性如下
dataSource的属性
spring.datasource.url=jdbc:oracle:thin:@IP:port:SID
spring.datasource.username=user
spring.datasource.password=name
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
spring.jpa.database = oracle
Mybatis常用的属性
##Mybatis扫描的位置
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
#配置文件地址
mybatis.config-location=classpath:mybatis-config.xml
hymeleaf配置
#hymeleaf视图解析器此处是默认配置
spring.thymeleaf.prefix=classpath:/templates/ t
spring.thymeleaf.suffix=.html
#取消thymeleaf对页面的强制校验
#spring.thymeleaf.mode=LEGACYHTML5
#默认带强制校验
spring.thymeleaf.mode=HTML5
#编码方式
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
#开发时关闭缓存,不然没法看到实时页面
spring.thymeleaf.cache=false
Spring视图解析器配置如果使用了thymeleaf或者veloctiy,就没用了
spring.mvc.view.prefix=classpath:/templates/
spring.mvc.view.suffix=.html
如果你看某个包很不爽,想要换掉它.或者某个包和你的容器起了冲突,要干掉它
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
</dependency>
之后换成自己的就行了
Maven总是会用近的依赖,也就是说,你在项目的构建说明文件里增加的这个依赖,会覆 盖传递依赖引入的另一个依赖
使用自动配置
你引入了这些包,注入了这些类,你发现有些类我并没有配置,那么这些类的属性是怎么配置的.Spring Boot 有自动配置,他会自动的配置一些类的属性,在程序启动的时候,Spring Boot会做一系列的自动配置,如果你配置了这些配置,那么将会采用你的,没有的话就会只用默认的
例如:thymeleaf视图解析器此处是默认配置,不写的话默认的配置就是这个
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
自动配置的原理:
Spring Boot 里面的包有一个spring-boot-autoconfigure的jar包,里面有很多的配置类,这些配置类就是实现自动配置的奥秘所在,要想修改这些配置,最直接的方式是通过 application.properties 配置相关属性来实现, 如果你要实现的需求通过这个无法满足,网上通常的做法是写一个类来继承配置类,重写里面的核心方法. 但是感觉这样违背了Spring Boot的初衷, 本来是为了配置更加简单, 这样做反而更加复杂, 还不如使用 xml来注入, 还违背了合成聚合复用原则, 明明可以通过对象组合注入为什么还要用继承呢? 所以我感觉覆盖的配置的时候使用XML注入更加合理,有兴趣的可以看看使用xml来替换Java的配置类http://blog.csdn.net/qq_21047625/article/details/78619836