spring boot 怎么加载controller

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot 怎么加载controller相关的知识,希望对你有一定的参考价值。

参考技术A 创建PageController,编码如下:
package org.springboot.sample.controller;

import java.util.Date;
import java.util.Map;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class PageController

// 从 application.properties 中读取配置,如取不到默认值为Hello Shanhy
@Value("$application.hell:Hello Shanhy")
private String hello = "Hello Shanhy";

/**
* 默认页<br/>
* @RequestMapping("/") 和 @RequestMapping 是有区别的
* 如果不写参数,则为全局默认页,加入输入404页面,也会自动访问到这个页面。
* 如果加了参数“/”,则只认为是根页面。
*
* @return
* @author SHANHY
* @create 2016年1月5日
*/
@RequestMapping(value = "/","/index")
public String index(Map<String, Object> model)
// 直接返回字符串,框架默认会去 spring.view.prefix 目录下的 (index拼接spring.view.suffix)页面
// 本例为 /WEB-INF/jsp/index.jsp
model.put("time", new Date());
model.put("message", this.hello);
return "index";


/**
* 响应到JSP页面page1
*
* @return
* @author SHANHY
* @create 2016年1月5日
*/
@RequestMapping("/page1")
public ModelAndView page1()
// 页面位置 /WEB-INF/jsp/page/page.jsp
ModelAndView mav = new ModelAndView("page/page1");
mav.addObject("content", hello);
return mav;


/**
* 响应到JSP页面page1(可以直接使用Model封装内容,直接返回页面字符串)
*
* @return
* @author SHANHY
* @create 2016年1月5日
*/
@RequestMapping("/page2")
public String page2(Model model)
// 页面位置 /WEB-INF/jsp/page/page.jsp
model.addAttribute("content", hello + "(第二种)");
return "page/page1";

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

pom.xml添加依赖:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>123456789

上面说了spring-boot 不推荐JSP,想使用JSP需要配置application.properties。
添加src/main/resources/application.properties内容:
# 页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
# 响应页面默认后缀
spring.mvc.view.suffix=.jsp
# 自定义属性,可以在Controller中读取
application.hello=Hello Shanhy123456

在 src/main 下面创建 webapp/WEB-INF/jsp 目录用来存放我们的jsp页面。
index.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Spring Boot Sample</title>
</head>

<body>
Time: $time
<br>
Message: $message
</body>
</html>12345678910111213

page1.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Spring Boot Sample</title>
</head>

<body>
<h1>$content </h1>
</body>
</html>1234567891011

要想让spring-boot支持JSP,需要将项目打成war包。
我们做最后一点修改,修改pom.xml文件,将 jar 中的 jar 修改为 war
然后启动spring-boot服务。

spring boot importsource怎么设置加载顺序

Spring Boot 所提供的配置优先级顺序比较复杂。按照优先级从高到低的顺序,具体的列表如下所示。

    命令行参数。

    通过 System.getProperties() 获取的 Java 系统参数。

    操作系统环境变量。

    从 java:comp/env 得到的 JNDI 属性。

    通过 RandomValuePropertySource 生成的“random.*”属性。

    应用 Jar 文件之外的属性文件。(通过spring.config.location参数)

    应用 Jar 文件内部的属性文件。

    在应用配置 Java 类(包含“@Configuration”注解的 Java 类)中通过“@PropertySource”注解声明的属性文件。

    通过“SpringApplication.setDefaultProperties”声明的默认属性。

Spring 可以 利用@Order控制配置类的加载顺序

参考技术A 1. 开启 DevTools 时, ~/.spring-boot-devtools.properties
2. 测试类上的 @TestPropertySource 注解
3. @SpringBootTest#properties 属性
4. **==命令⾏参数(--server.port=9000 )==**
5. SPRING_APPLICATION_JSON 中的属性
6. ServletConfig 初始化参数
7. ServletContext 初始化参数
8. java:comp/env 中的 JNDI 属性
9. System.getProperties()
10. **操作系统环境变量**
11. random.* 涉及到的 RandomValuePropertySource
12. **jar 包外部的 application-profile.properties 或 .yml**
13. **jar 包内部的 application-profile.properties 或 .yml**
14. **jar 包外部的 application.properties 或 .yml**
15. **jar 包内部的 application.properties 或 .yml**
16. **@Configuration 类上的 @PropertySource**
17. SpringApplication.setDefaultProperties() 设置的默认属性
看到这么多,是不是懵逼了,感觉完全记不住,可以到传智播客社区在逛一逛

以上是关于spring boot 怎么加载controller的主要内容,如果未能解决你的问题,请参考以下文章

spring boot工程 webservice怎么加载mapper文件

spring boot 加载日志框架后经常出现 LOG_PATH_IS_UNDEFINED 目录怎么办?

spring boot启动报内存溢出的问题

从数据库加载spring boot app属性

Spring Boot配置保存日志文件

启动spring boot报错,怎么解决