工作之余,想要学习一下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. Docker - 入门

    术语 1. 镜像(image)与容器(container) 镜像是指文件系统快照或tar包. 容器是指镜像的运行态(时) 2.宿主机管理 设置/配置一台物理服务器或虚拟机,以便用于运行Docker容器 ...

  2. c中的数据类型、常量、变量

    一. 数据 1. 什么是数据 生活中时时刻刻都在跟数据打交道,比如体重数据.血压数据.股价数据等.在我们使用计算机的过程中,会接触到各种各样的数据,有文档数据.图片数据.视频数据,还有聊QQ时产生的文 ...

  3. php日期处理 -- 获取本周和上周的开始日期和结束日期(备忘)

    Learn From: http://www.phpernote.com/php-function/1019.html 直接贴代码: <?php header('Content-type: te ...

  4. win8 获取管理员权限

    Win8 下动不动 就弹出要管理员权限什么.......   网上找到很多方法.  什么注册表什么..... 不行..   以下这个方法可行. 按WIN+R,运行对话框中输入gpedit.msc,开启 ...

  5. tomcat下context.xml中JNDI数据源配置

    jndi(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API.命名服务将名称和对象联系起来,使得我们可以用 ...

  6. 【转载】TalkingData首席金融行业专家鲍忠铁:18亿数据解读移动互联网

    http://www.36dsj.com/archives/33417 鲍忠铁:大家下午好! 今天我会讲三个议题,一是用18亿数据解读现在移动互联网的生态圈.二是看看数据有什么样的应用.三是大数据的隐 ...

  7. asp.net mvc 实体类成员变量标识示例

    检查不能为空 [Required] public string ID { get; set; } 检查最大长度 [StringLength(36, ErrorMessage = "长度不可超 ...

  8. python连接数据库并插入数据

    1.Python创建数据库 import MySQLdb try: conn = MySQLdb.connect( host="127.0.0.1", port=3306, use ...

  9. python 的集合 set()操作

      Python 的集合 set(),是一个无序不重复元素集,可以用于关系测试和消除重复元素.     有以下运算:   1.创建一个set ()集合:   2.add:增加集合元素   3.clea ...

  10. Java Swing学习笔记——创建JFrame

    创建显示一个空JFrame import javax.swing.JFrame; public class JFrameDemo extends JFrame{ public JFrameDemo() ...