使用IntelliJ IDEA搭建一个简单的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"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5     <parent>
 6         <groupId>org.springframework.boot</groupId>
 7         <artifactId>spring-boot-starter-parent</artifactId>
 8         <version>2.4.3</version>
 9         <relativePath/> <!-- lookup parent from repository -->
10     </parent>
11     <groupId>com.seventeen</groupId>
12     <artifactId>kfyyxt</artifactId>
13     <version>0.0.1-SNAPSHOT</version>
14     <name>kfyyxt</name>
15     <description>Demo project for Spring Boot</description>
16     <properties>
17         <java.version>1.8</java.version>
18     </properties>
19     <dependencies>
20         <dependency>
21             <groupId>org.springframework.boot</groupId>
22             <artifactId>spring-boot-starter-web</artifactId>
23         </dependency>
24 
25         <dependency>
26             <groupId>org.springframework.boot</groupId>
27             <artifactId>spring-boot-starter-test</artifactId>
28             <scope>test</scope>
29         </dependency>
30     </dependencies>
31 
32     <build>
33         <plugins>
34             <plugin>
35                 <groupId>org.springframework.boot</groupId>
36                 <artifactId>spring-boot-maven-plugin</artifactId>
37             </plugin>
38         </plugins>
39     </build>
40 
41 </project>

pom.xml

 

现在只有最基础的SpringWeb,我们需要引入几个新的包

修改后如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5     <parent>
 6         <groupId>org.springframework.boot</groupId>
 7         <artifactId>spring-boot-starter-parent</artifactId>
 8         <version>2.4.3</version>
 9         <relativePath/> <!-- lookup parent from repository -->
10     </parent>
11     <groupId>com.seventeen</groupId>
12     <artifactId>kfyyxt</artifactId>
13     <version>0.0.1-SNAPSHOT</version>
14     <name>kfyyxt</name>
15     <description>Demo project for Spring Boot</description>
16     <properties>
17         <java.version>1.8</java.version>
18     </properties>
19     <dependencies>
20         <dependency>
21             <groupId>org.springframework.boot</groupId>
22             <artifactId>spring-boot-starter-web</artifactId>
23         </dependency>
24 
25         <dependency>
26             <groupId>org.springframework.boot</groupId>
27             <artifactId>spring-boot-starter-test</artifactId>
28             <scope>test</scope>
29         </dependency>
30         <!-- JSON库 -->
31         <dependency>
32             <groupId>org.springframework.boot</groupId>
33             <artifactId>spring-boot-starter-json</artifactId>
34             <version>2.0.3.RELEASE</version>
35             <scope>compile</scope>
36         </dependency>
37         <!-- jstl JSP标准标签库 -->
38         <dependency>
39             <groupId>javax.servlet</groupId>
40             <artifactId>jstl</artifactId>
41             <version>1.2</version>
42         </dependency>
43         <!-- 返回jsp页面还需要这个依赖 -->
44         <dependency>
45             <groupId>org.apache.tomcat.embed</groupId>
46             <artifactId>tomcat-embed-jasper</artifactId>
47             <scope>provided</scope>
48         </dependency>
49         <!-- freemarker模板引擎视图 -->
50         <dependency>
51             <groupId>org.springframework.boot</groupId>
52             <artifactId>spring-boot-starter-freemarker</artifactId>
53         </dependency>
54         <!-- 热部署,不用重启 -->
55         <dependency>
56             <groupId>org.springframework.boot</groupId>
57             <artifactId>spring-boot-devtools</artifactId>
58             <optional>true</optional>
59         </dependency>
60         <!--  thymeleaf 模板-->
61         <dependency>
62             <groupId>org.springframework.boot</groupId>
63             <artifactId>spring-boot-starter-thymeleaf</artifactId>
64         </dependency>
65 
66     </dependencies>
67 
68     <build>
69         <plugins>
70             <plugin>
71                 <groupId>org.springframework.boot</groupId>
72                 <artifactId>spring-boot-maven-plugin</artifactId>
73             </plugin>
74         </plugins>
75     </build>
76 
77 </project>

pom.xml

 

其中添加的内容暂时放到其中,如果有错误欢迎指正!

 

之后经过各种折腾查询,找到了能运行自定义类的方法(鼓捣了半天)

 

 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

 

其中写了一下注释,根据我的实验和理解,如果有错误欢迎评论区指正!

再来看一下我的模板文件目录结构:

 

 因为是测试,所以只是写了一个模板文件

1 <h2 style="color:blue;">Hi!Hello World!!!</h2>

index.ftl

 

其中项目的默认模板目录是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=.ftl

application.properties

 

这里就可以修改8080端口为8888端口,我们访问的时候使用127.0.0.1:8080就可以了

结果:

返回页面

 

返回数据

 

 

 

 

到这里,基本可以保证,页面和返回数据都可以实现!

 

版权声明:本文为17years原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/17years/p/14434257.html