参与公司搭建开发平台用的是SpringBoot,没有用过学习下,它使用 “习惯优于配置” ,Sprig项目中存在大量的配置,SpringBoot内置一个习惯性的配置,利用 IDEA 可以自动生成生成,可以让你的项目快速运行起来。先搭建一个简单的环境,其他的配置和更深入的东西再慢慢学习。
看其他博主搭建起来很简单,但是过程中还是出现了很多问题,写在文章开头,或许可以帮助大家。
1.编写的类要放在Application类所在包或其子包下,这样SpringbootApplication启动启动的时候才能扫描到。检查控制台有没有如下输出,没有则是没有扫描到【测试2.0版本的springboot可能不会输出https://blog.csdn.net/neosmith/article/details/80197902】
但是也要注意,SpringbootApplication也不能放在根目录Java下,否则也会报错。
2.url路径写的不对,http://127.0.0.1:8080/[controllerMapping]/[methodMapping],默认路径没有工程名,默认端口8080(后面都可以配置)。
1.controller类的注解应该是@Controller而不能是@RestController(相当于@Controller+@ResponseBody),否则不会进入视图解析器
2.application.properties试图解析器的语法写的不对(如版本不同,spring.mvc.view.prefix与spring.view.prefix的区别,报500)或者路径写的不对(报404)
3.需要导入jsp支持的相关jar包,在本文中有【否则可能会变成下载】
1.换成springboot1.5.9版本可以跳转,其他博客关于这个问题的答案比较多,但是我觉得例如配置试图解析器的地方其实一般不会出错,除了粗心导致的错误,可以测试下这个原因,不确定是不是这个原因。
选择 Spring Initializr ,选择默认 =》 Next
修改项目信息,项目名称、Maven项目、Jar/War、Java、目录结构、Version等 =》 NEXT
选择SpringBoot版本号【这个地方要注意下,版本号选择2.0之后可能会出现日志不打印的问题,可能也是跳转WEB-INF下jsp失败的原因之一,我选择1.5.9版本就没有出现问题】以及勾选模板,先勾选Web,可以根据需要勾选,也可以后面在通过pom文件添加
配置SpringBoot项目路径位置 =》Finish
(第一次配置需要等待IDEA下载相应的依赖包)默认创建好的项目结构如下:
编写IndexController类
1.注意目录结构,编写的类要放在SpringbootApplication类所在包或其子包下,这样SpringbootApplication启动启动的时候才能扫描到。但是也要注意,SpringbootApplication也不能放在根目录Java下,否则也会报错。
2.@RestController = @Controller + @ResponseBody
找到SpringbootApplication右键运行,或者点击右上角的三角运行标志
@SpringBootApplication 是SpringBoot的核心注解=@Configuration+@EnableAutoConfiguration+@ComponentScan
可以看到启动信息
访问路径,默认是不带项目名称的
这样一个简单的SpringBoot项目就完成了,下面说一些会用到的其他东西。
SpringBoot 的默认视图支持是 Thymeleaf 模板引擎,模板文件放在resources下面的两个文件夹中,但是我比较熟悉的还是JSP文件,放在webapp目录下的WEB-INF中。
javax.servlet
javax.servlet-api
provided
javax.servlet
jstl
org.apache.tomcat.embed
tomcat-embed-jasper
provided
2.在application.properties配置视图解析器的路径及后缀
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
3.将IndexController稍作修改,toPage方法跳转Hello.jsp
@Controller
@RequestMapping("/index")
public class IndexController {
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return "Hello world";
}
@RequestMapping("/toPage")
public String toPage(){
return "/Hello";
}
}
4.创建webapp目录以及jsp文件
此处有一个需要注意的问题,创建webapp最好不用新建文件夹的方式
而应该:在main下面新建一个webapp,Project Setting ->Modules ->加号 ->web,选择你刚才新建webapp文件的位置【前后他们的图标会变化】
5.访问http://127.0.0.1:8080/index/toPage就可以访问成功了