一、创建项目
1.file->new->module
2.因为是社区版的,所以没有spring Initializr,需要自己去下载spring assistant(在setting的plugins里面搜索然后install即可)
3.next之后自定义项目域名和name(注意这里命名有时候会报invalid data的错误弹窗,换个名字就行了),然后选择Web,选择Spring web->next即创建完成。
这就是spring web项目的初始目录啦,是不是很完整~
4.目录结构:
二、使用springboot框架集成springMVC
注意:写java代码的时候必须在Application启动类所在包下(包含下级),即不能高于入口类(不然咋进哈哈)。 比如controller:
package com.example1.demo1.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@Controller
public class indexController {
@RequestMapping("/cotroller/indexController")//设置方法的请求路径
public @ResponseBody String say(){
return "hello sting boot";
}
//或者写:
@RequestMapping("/map")
@ResponseBody
public String map(){
return "this is spring boot project";
};
};
@SpringBootApplication
public class Demo2Application {
public static void main(String[] args) {
SpringApplication.run(Demo2Application.class, args);
}
}
tips:url后缀要和controller中mapping映射的value一样,不然也会报“This application has no explicit mapping”的错误。
三、springboot的核心配置文件(application)
1..properties形式的配置文件
#设置内嵌tomCat端口号
server.port = 8081
#设置上下文根
server.servlet.context-path = /springboot
2..yml和.yaml形式的配置文件
server:
port: 8081
servlet:
context-path: /springboot
3.由于只能有一个核心配置文件application,所以当多种都存在的时候,项目会按以下优先级:
properties>yml
4.多环境下核心配置文件
不同环境的配置文件往往很不一样,springboot的多环境配置很方便。
目录结构:
分别写好了不同环境的配置文件之后,在主配置文件中修改参数spring.profiles.active即可。
spring.profiles.active = test
5.自定义配置
在核心配置文件里可以写一些自定义的参数,但由于自定义参数灵活多变,spring无法直接识别。在springboot中也无需解析配置文件,只需要在控制层(其他层也可以,在任何代码处。都可以直接用@Value注解获取变量)用@Value()注解即可获取配置参数即可。
#设置内嵌tomCat端口号
server.port = 8081
#设置上下文根
server.servlet.context-path = /springboot
school.name = "NCUT"
websit = "http://www.hellospringaaa.com"
@Controller
public class indexController {
@Value("${school.name}")//获取自定义配置参数
private String schoolName;
@Value("${websit}")
private String websit;//获取自定义配置参数
@RequestMapping("/cotroller/indexController")//设置方法的请求路径
public @ResponseBody String say(){
return "hello "+ schoolName + websit;
}
另外,还可以把自定义配置映射到对象。
四、springBoot集成JSP
1.springboot可以直接用thymeleaf前端引擎,如果想用jsp的话,需要手动集成。
org.apache.tomcat.embed
tomcat-embed-jasper
2.还需再build标签中指定路径,其中编译路径META-INF/resources是springboot为我们规定好的,需要编译的文件路径就选择webapp中所有的web资源文件。
src/main/webapp
META-INF/resources
*.*
3.配置视图解析器
视图的作用是渲染模型数据,将模型里的数据以某种形式呈现给客户。视图对象可以是常见的 JSP,还可以是 Excel 或 PDF 等形式不一的媒体形式。视图解析器是将目标方法返回的逻辑视图名称转换为View对象。
我社区版IDEA貌似不太支持jsp,先看thymeleaf吧还是。