SpringBoot快速入門
設(shè)置spring boot的parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
說明:Spring boot的項目必須要將parent設(shè)置為spring boot的parent,該parent包含了大量默認(rèn)的配置篡撵,大大簡化了我們的開發(fā)莉撇。
導(dǎo)入spring boot的web支持
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
添加Spring boot的插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
編寫第一個Spring Boot的應(yīng)用
package cn.huachao.springboot.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@SpringBootApplication
@Configuration
public class HelloApplication {
@RequestMapping("hello")
@ResponseBody
public String hello(){
return "hello world觉义!";
}
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
}
代碼說明:
1测摔、@SpringBootApplication:Spring Boot項目的核心注解蛮瞄,主要目的是開啟自動配置所坯。;
2挂捅、@Configuration:這是一個配置Spring的配置類芹助;
3、@Controller:標(biāo)明這是一個SpringMVC的Controller控制器闲先;
4周瞎、main方法:在main方法中啟動一個應(yīng)用,即:這個應(yīng)用的入口饵蒂;
啟動應(yīng)用
在Spring Boot項目中声诸,啟動的方式有兩種,一種是直接run Java Application另外一種是通過Spring Boot的Maven插件運行退盯。
- 第一種
main方法上右鍵:Run as ---> Java Application -
第二種
點擊Run Configurations
注:第二種需要在項目中配置了上面的Spring boot的插件
- 測試在瀏覽器輸入:http://127.0.0.1:8080/hello
看到:hello world彼乌!,表示成功
Spring Boot的核心
入口類和@SpringBootApplication
Spring Boot的項目一般都會有*Application的入口類渊迁,入口類中會有main方法慰照,這是一個標(biāo)準(zhǔn)的Java應(yīng)用程序的入口方法。
@SpringBootApplication注解是Spring Boot的核心注解琉朽,它其實是一個組合注解:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
...
該注解主要組合了以下注解:
-
@SpringBootConfiguration
:這是Spring Boot項目的配置注解毒租,這也是一個組合注解:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
}
在Spring Boot項目中推薦使用@ SpringBootConfiguration
替代@Configuration
-
@EnableAutoConfiguration
:啟用自動配置,該注解會使Spring Boot根據(jù)項目中依賴的jar包自動配置項目的配置項:
如:我們添加了spring-boot-starter-web
的依賴箱叁,項目中也就會引入SpringMVC的依賴墅垮,Spring Boot就會自動配置tomcat和SpringMVC
@ComponentScan
:默認(rèn)掃描@SpringBootApplication
所在類的同級目錄以及它的子目錄惕医。
關(guān)閉自動配置
通過上述,我們得知算色,Spring Boot會根據(jù)項目中的jar包依賴抬伺,自動做出配置,Spring Boot支持的自動配置如下(非常多):
如果我們不需要Spring Boot自動配置灾梦,想關(guān)閉某一項的自動配置峡钓,該如何設(shè)置呢?
比如:我們不想自動配置Redis若河,想手動配置能岩。
@Controller
@SpringBootApplication(exclude={RedisAutoConfiguration.class})
@Configuration
public class HelloApplication {
...
自定義Banner
啟動Spring Boot項目后會看到這樣的圖案:
這個圖片其實是可以自定義的:
-
打開網(wǎng)站:
http://patorjk.com/software/taag/#p=display&h=3&v=3&f=4Max&t=MYWAY%20Spring%20Boot
拷貝生成的字符到一個文本文件中,并且將該文件命名為banner.txt
-
將banner.txt拷貝到項目的resources目錄中:
重新啟動程序萧福,查看效果:
如果不想看到任何的banner捧灰,也是可以將其關(guān)閉的:
public static void main(String[] args) {
// SpringApplication.run(HelloApplication.class, args);
SpringApplication application = new SpringApplication(HelloApplication.class);
application.setBannerMode(Banner.Mode.OFF);//關(guān)閉Banner
application.run(args);
}
全局配置文件
Spring Boot項目使用一個全局的配置文件application.properties或者是application.yml,在resources目錄下或者類路徑下的/config下统锤,一般我們放到resources下毛俏。
- 修改tomcat的端口為8088
server.port=8088
重啟
- 修改進(jìn)入DispatcherServlet的規(guī)則為:*.html
server.port=8088
server.servlet-path=*.html
重啟之后: