SpringBoot 02: 初識SpringBoot( 二 )

【SpringBoot 02: 初識SpringBoot】@Component@ConfigurationProperties(prefix = "school")public class SchoolInfo {private String name;private String website;private String address;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getWebsite() {return website;}public void setWebsite(String website) {this.website = website;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "SchoolInfo{" +"name='" + name + '\'' +", website='" + website + '\'' +", address='" + address + '\'' +'}';}}使用jsp

  • SpringBoot不推薦使用jsp, 而是使用模板技術代替jsp
  • 如果要使用jsp, 需要添加如下依賴,負責編譯jsp文件
<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId></dependency>
  • 如果需要使用servlet, jsp, jstl的功能, 需要添加如下依賴
<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId></dependency><dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId></dependency><dependency><groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version></dependency>
  • 創建一個存放jsp的目錄, 一般為src/main/webapp目錄,記得設置webapp的目錄屬性
  • 需要在pom.xml指定jsp文件編譯后的存放目錄:META-INF/resources
<resource> <directory>src/main/webapp</directory> <targetPath>META-INF/resources</targetPath> <includes><include>**/*.*</include> </includes></resource>
  • 創建Controller, 訪問jsp
  • 在application.propertis文件中配置視圖解析器
#配置視圖解析器spring.mvc.view.prefix=/spring.mvc.view.suffix=.jsp手動使用SpringBoot容器獲取對象
  • 關注SpringBoot工程的主啟動類的run方法
@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}
  • 關注上述run方法的返回值
public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) {return run(new Class[]{primarySource}, args);}
  • 而ConfigurableApplicationContext是ApplicationContext的子接口
public interface ConfigurableApplicationContext extends ApplicationContext, Lifecycle, Closeable {}
  • 所以接收SpringBoot主啟動類的run方法的返回值就可以獲取到SpringBoot容器
  • 之后便可以按照需求調用SpringBoot容器的方法獲取已經注冊到容器中的對象
CommandLineRunner接口 與 ApplcationRunner接口
  • 兩個接口
@FunctionalInterfacepublic interface CommandLineRunner {void run(String... args) throws Exception;}@FunctionalInterfacepublic interface ApplicationRunner {void run(ApplicationArguments args) throws Exception;}
  • 兩個接口都有一個run方法
  • SpringBoot項目的主啟動類實現上述接口,重寫run方法,在容器對象創建好后自動執行run()方法
  • 可以在容器對象創建好后完成一些自定義的操作

推薦閱讀