Spring MVC之最簡專案配置(全註解)
Environment:
Java 1.8.0_131
maven 3.5.0
InteliJ IDEA 2017.1.4
tomcat 8.5.15
簡介
Spring 的目的在於簡化Java EE應用程式的開發,依賴注入和AOP是它的核心。使用Spring可以大大的簡化開發,提高效率。
這篇文章記錄一下Spring MVC的全java配置方式。
Spring主要有兩種配置方式:
在XML中配置
使用Java配置
個人覺得使用Java配置更加好一些,它更加強大且型別安全。
配置方法
Java配置可以細分為兩種方式:顯示配置和隱式配置。隱式配置中,Spring通過兩個角度實現自動化裝配:
元件掃描:Spring自動發現應用上下文中建立的bean
自動裝配:Spring自動滿足bean之間的依賴。
更詳細的不多說了。
新建工程
- 使用mave新建一個工程,並使用模板
-
可以根據自己的情況修改maven的配置和倉庫
4.
新建工程後,等待模板載入完畢以及maven庫的載入,載入完成後為
- 建成後在pom.xml檔案中新增依賴的包
<dependency>
<groupId>org.springframework</groupId>
<artifactId >spring-webmvc</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId >javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
開始配置
Spring的執行流程如下圖所示
也就是我們需要配置上面這六個部分:
DispatcherServlet: 可以認為Spring MVC是從這裡開始正式執行的,作為中心
HandlerMapping: 也就是路由,這個在寫控制類的時候使用註解就配置好了,非常簡單
Controller:這個就是MVC中的C,邏輯控制
模型及檢視名:檢視名就是JSP檔名,模型就是向檢視中傳入的資料
ViewResolver:檢視解析器,用來解析檢視
View:也就是所寫的JSP解析後返回瀏覽器的檢視
其中handlerMapping、Controller、模型及檢視名最簡單的情況下都在一個Controller類中配置就可以了,View也就是寫JSP檔案。
配置DispatcherServlet和ViewResolver
新建一個java資料夾用來存放java檔案,並設定為原始檔目錄
新建AppInitilizer.java 和WebConfig.java
// AppInitializer .java
public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
protected Class<?>[] getRootConfigClasses() {
return new Class[0];
}
protected Class<?>[] getServletConfigClasses() {
return new Class[] { WebConfig.class };
}
/**
* 將DispatcherServlet對映到"/"
*/
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
// WebConfig.java
@Configuration
@EnableWebMvc
@ComponentScan("me.firstsnow.controller")
public class WebConfig extends WebMvcConfigurerAdapter {
/**
* 配置JSP檢視解析器,根據控制類中返回的檢視名解析檢視
* @return 檢視解析器
*/
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
// 檢視放在 webapp/WEB-INF/views下
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
viewResolver.setExposeContextBeansAsAttributes(true);
return viewResolver;
}
/**
* 配置靜態資源的處理
*/
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
將檢視放到WEB-INF目錄下,禁止被直接訪問
現在的目錄結構為:
配置Controller類
寫一個最簡單的首頁的Controller類放在controller目錄中
@Controller
@RequestMapping(value = "/")
public class HomeController {
/**
* GET方法訪問
* @return index --> WEB_INF/views/index.jsp
*/
@RequestMapping(method = RequestMethod.GET)
public String home() {
return "index";
}
}
最後配置tomcat部署
最後執行,看到index.jsp中渲染的內容就成功了。