SpringBoot 项目初始化
工作之余,想要学习一下SpringBoot,通过网络大量教程最终成功运行SpringBoot项目。
第一步
首先,通过教程发现一套完整的快速搭建SpringBoot项目网站:https://start.spring.io/
以上是我的简单配置(其实右边可以配置好多东西,比如spring-mysql,但是考虑第一次,就简单配置了一个Spring Web),点击 "GENERATE" 按钮就可以下载一个.zip压缩包,解压后就是一个简单的SpringBoot项目了!
因为工作中使用的是IntelliJ IDEA编译器,这里就记录一下idea导入SpringBoot 项目
首先打开idea
点击红框 Import Projeat,开始导入SpringBoot项目
选择目录后依次按照顺序点击,之后我们就会进到编译器之中。
我们对项目进行配置:
在搜索框搜索 “ann” ,等待搜索出现 Enable annotation processing ,对它勾选,然后Apply应用(这个应该是表示使用注解的,例如@Controller。。。)【如果对这个用处有问题希望大家在评论区更正,谢谢!】
然后修改Maven(为了下载速度快一点,要不然会奇慢无比)
之后右下角会出现:
这个东西表示问要不导入包,点击Import Changes,之后就是等待编译器下载包,因为项目暂时还没有很多依赖包,所以等待时间应该不会很长。
等待的过程中来看一下项目文件目录,目录结构如下(简单的标注了一下,如果有问题欢迎评论区提出!):
尝试启动一下:
访问127.0.0.1:8080,因为默认使用8080端口(如果需要修改端口可以在配置文件中修改,下面会介绍)。
这里因为没有设置404页面,但是可以看到项目启动成功!!!
第二步
因为有一点spring基础,参考以前带码进行套用。
先看一下pom.xml文件:
1 <?xml version="1.0" encoding="UTF-8"?> 2pom.xml3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 4.0.0 56 11org.springframework.boot 7spring-boot-starter-parent 82.4.3 910 com.seventeen 12kfyyxt 130.0.1-SNAPSHOT 14kfyyxt 15Demo project for Spring Boot 1617 191.8 1820 31 3221 24 25org.springframework.boot 22spring-boot-starter-web 2326 30org.springframework.boot 27spring-boot-starter-test 28test 2933 40 4134 3935 38org.springframework.boot 36spring-boot-maven-plugin 37
现在只有最基础的SpringWeb,我们需要引入几个新的包
修改后如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2pom.xml3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 4.0.0 56 11org.springframework.boot 7spring-boot-starter-parent 82.4.3 910 com.seventeen 12kfyyxt 130.0.1-SNAPSHOT 14kfyyxt 15Demo project for Spring Boot 1617 191.8 1820 67 6821 24 25org.springframework.boot 22spring-boot-starter-web 2326 30 31org.springframework.boot 27spring-boot-starter-test 28test 2932 37 38org.springframework.boot 33spring-boot-starter-json 342.0.3.RELEASE 35compile 3639 43 44javax.servlet 40jstl 411.2 4245 49 50org.apache.tomcat.embed 46tomcat-embed-jasper 47provided 4851 54 55org.springframework.boot 52spring-boot-starter-freemarker 5356 60 61org.springframework.boot 57spring-boot-devtools 58true 5962 65 66org.springframework.boot 63spring-boot-starter-thymeleaf 6469 76 7770 7571 74org.springframework.boot 72spring-boot-maven-plugin 73
其中添加的内容暂时放到其中,如果有错误欢迎指正!
之后经过各种折腾查询,找到了能运行自定义类的方法(鼓捣了半天)
1 package com.seventeen.kfyyxt.demo.config; 2 3 public class Constant { 4 public static final String APP_NAME = "demo"; 5 /** 6 * 模块访问路径 7 */ 8 public static final String APP_PATH = "/demo/"; 9 /** 10 * 模块视图路径 11 */ 12 public static final String APP_VIEW = "/demo"; 13 14 }Constant
1 package com.seventeen.kfyyxt.demo.controller; 2 3 import com.seventeen.kfyyxt.demo.config.Constant; 4 5 import org.springframework.stereotype.Controller; 6 import org.springframework.web.bind.annotation.RequestMapping; 7 import org.springframework.web.bind.annotation.ResponseBody; 8 import org.springframework.web.bind.annotation.RestController; 9 import org.springframework.web.servlet.ModelAndView; 10 11 @RequestMapping(value = Constant.APP_PATH + "hello") 12 @Controller(value = Constant.APP_NAME + "hello") 13 //@Controller 14 //@RestController (当返回页面时,不能用这个注释) 15 public class HelloController { 16 17 18 /** 19 * @ResponseBody 这个注解如果只是单纯的返回页面可以不加,但是如果返回json字符串,就必须要加上,否则默认返回的是页面 20 * 如果是仅返回页面,@ResponseBody 加不加都可以 21 */ 22 @ResponseBody 23 // @RequestMapping(value = Constant.APP_PATH + "hello/index") 24 @RequestMapping(value = "index") 25 public ModelAndView index(){ 26 return new ModelAndView(Constant.APP_VIEW + "/hello/index"); 27 } 28 29 @ResponseBody 30 /** 31 * 开头如果有 @RequestMapping(value = Constant.APP_PATH + "hello") 32 * 下面的各个方法上就不用加 Constant.APP_PATH 33 */ 34 // @RequestMapping(value = Constant.APP_PATH + "hello/hah") 35 @RequestMapping(value = "hah") 36 public String hah(){ 37 return "Hello World !!!哇偶!!!"; 38 //这样返回返回的是页面,需要将它返回成模板 39 } 40 }HelloController
其中写了一下注释,根据我的实验和理解,如果有错误欢迎评论区指正!
再来看一下我的模板文件目录结构:
因为是测试,所以只是写了一个模板文件
1index.ftlHi!Hello World!!!
其中项目的默认模板目录是static,需要加一个依赖包,否则是找不到模板文件的 !(记不住是哪个包了,按照上面pom.xml配置就可以)
再看一下配置文件:
1 #修改端口号 2 server.port=8888 3 4 #jsp path 5 spring.mvc.view.prefix=/WEB-INF/jsp/ 6 spring.mvc.view.suffix=.jsp 7 8 #freemarker path(使用 .ftl 模板页面) 9 spring.freemarker.suffix=.ftlapplication.properties
这里就可以修改8080端口为8888端口,我们访问的时候使用127.0.0.1:8080就可以了
结果:
返回页面
返回数据
到这里,基本可以保证,页面和返回数据都可以实现!