工作之余,想要学习一下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就可以了

结果:

返回页面

返回数据

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

SpringBoot 项目初始化的更多相关文章

  1. springboot项目启动之后初始化自定义配置类

    前言 今天在写项目的时候,需要再springboot项目启动之后,加载我自定义的配置类的一些方法,百度了之后特此记录下. 正文 方法有两种: 1. 创建自定义类实现 CommandLineRunner ...

  2. 使用Spring Initializr初始化SpringBoot项目

    虽然SpringBoot CLI消除了不少设置工作,但如果你更倾向于传统的Java项目结构,那你应该看看Spring Initializr. Spring Initializr从本质上来说就是一个we ...

  3. SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL

    1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安 ...

  4. linux小白成长之路9————打包部署SpringBoot项目

    [内容指引] SpringBoot项目介绍: 打包SpringBoot项目: 1.pom.xml: 2.application.properties配置: 3.application-dev.prop ...

  5. linux小白成长之路10————SpringBoot项目部署进阶

    [内容指引] war包部署: jar包部署: 基于Docker云部署. 一.war包部署 通过"云开发"平台初始化的SpringBoot项目默认采用jar形式打包,这也是我们推荐的 ...

  6. 补习系列(1)-springboot项目基础搭建课

    目录 前言 一.基础结构 二.添加代码 三.应用配置 四.日志配置 五.打包部署 小结 前言 springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了.抛开微服务.技术社区 ...

  7. STS搭建SpringBoot项目

    开发工具:推荐IDEA . Spring Tool Suit 虽然很简单,但还是记录一下,图个热闹. 开始 >>> 1. File --> New --> Spring ...

  8. SpringBoot项目打成一个war包

    springboot 带有内置Tomcat 服务器,可以直接将项目打包成jar运行,运行命令为: java -jar demo.jar 但是如果在需要把项目达成war包该怎么办呢?下面是将spring ...

  9. springBoot 项目war包部署及改为war包后资源路径错误问题

    参考资料: https://blog.csdn.net/rico_zhou/article/details/83415114 https://blog.csdn.net/pz641/article/d ...

  10. 关于springboot项目中自动注入,但是用的时候值为空的BUG

    最近想做一些web项目来填充下业余时间,首先想到了使用springboot框架,毕竟方便 快捷 首先:去这里 http://start.spring.io/ 直接构建了一个springboot初始化的 ...

随机推荐

  1. Coursera上一个不错的Java课

    地址:https://www.coursera.org/learn/java-chengxu-sheji/home/welcome 复习天昏地暗,看点视频调剂一下.发现这个讲的还是很不错的.北大毕竟比 ...

  2. Drop it

    FCC题目:队友该卖就卖,千万别舍不得. 让我们来丢弃数组(arr)的元素,从左边开始,直到回调函数return true就停止. 第二个参数,func,是一个函数.用来测试数组的第一个元素,如果返回 ...

  3. SPOJ : DIVCNT2 - Counting Divisors (square)

    设 \[f(n)=\sum_{d|n}\mu^2(d)\] 则 \[\begin{eqnarray*}\sigma_0(n^2)&=&\sum_{d|n}f(d)\\ans&= ...

  4. [转]jni数据类型映射、域描述符说明

    在Java存在两种数据类型: 基本类型 和 引用类型 ,大家都懂的 . 在JNI的世界里也存在类似的数据类型,与Java比较起来,其范围更具严格性,如下: 1.primitive types ---- ...

  5. 如何让label和textblock分成两行

    http://stackoverflow.com/questions/183406/xaml-newline-in-string-attribute http://www.developerfusio ...

  6. python 解决递归调用栈溢出

    递归函数 2578次阅读 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact ...

  7. Android的编译系统

    一.Makefile的主要流程   以下主要流程都在build/core/main.mk里安排.   l  初始化相关的参数设置(buildspec.mk.envsetup.mk.config.mk) ...

  8. ListView分页显示

    出在:http://blog.csdn.net/tu_bingbing/article/details/13275107         当ListView要显示的数据过多时,为了更快的响应用户,这个 ...

  9. 用python 抓取B站视频评论,制作词云

    python 作为爬虫利器,与其有很多强大的第三方库是分不开的,今天说的爬取B站的视频评论,其实重点在分析得到的评论化作嵌套的字典,在其中取出想要的内容.层层嵌套,眼花缭乱,分析时应细致!步骤分为以下 ...

  10. mysql 锁表操作流程