【SpringBoot学习一】开发入门--快速创建springboot程序
前言
本片博客记录快速创建springboot工程的两种方式。一种是使用maven创建,一种是使用spring initializr创建。开发环境JDK1.8、IDEA、maven。
SpringBoot 优点
- 可快速构建spring应用
- 直接嵌入tomcat、jetty、undenrtow服务器(无须部署war文件)
- 提供依赖启动器(starter)简化构建配置
- 极大程度的自动化配置Spring和第三方库
- 提供生产就绪功能,例如指标监控检测、外部检测
- 极少代码生成和XML配置
使用maven创建Spring Boot项目
第一步:
首先在左上角的file->new->project(如果是新安装的IDEA需要配置maven仓库,当然idea自己也会帮你配置,但是好像在C盘,并且可能会出现一些错误提示问题,如果不介意然可以使用,但是还是建议使用自己的maven仓库创建,直接点击new project),然后出现下面图片显示,选择maven项目,点击next。到下一个界面。

第二步:
这个界面的name就是你的项目名,location就是你项目的地址路径,groupid一般是你网址域名倒着写,例如com.hjk.www那反过来就是www.hjk.com,这一般是公司定义的,我们可以自己命名。

第三步:
然后我们找到pom.xml文件,在里面添加两个依赖,添加依赖你的maven仓库如果没有这个包是会报错的,然后我们点击一个类似刷新的图标idea就会加载相关的包了,我们等它加载完,第一次加载应该会等很长时间,我们耐心等待一下。如果在加载完成之后你的parent的那个依赖会爆红,可能是应为你的仓库是idea的默认C盘那个仓库,建议换成自己的。这个报错的原因好像是那个仓库下载的是基础包,没有这个parent的包!

第四步:
最后我们查看一下我们所导入的包都有什么,点击右边的maven->dependencies查看

第五步:
我们创建一个主程序启动类
我们在学mvc是常常都是有几个包(dao、service、controller)我们在写springboot项目时也是差不多的,这里我们在dao包的同级目录下创建一个主程序类。

代码:
package com.hjk;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class springbootParent {
public static void main(String[] args) {
SpringApplication.run(springbootParent.class,args);
}
}
最后我们创建一个controller测试一下
在controller包里面创建一个HelloController类
package com.hjk.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello SpringBoot";
}
}
运行springbootParent类,然后访问"http://localhost:8080/hello" 然后就能在这个界面看到字符串输出了。
与html联系
我们怎么通过controller去访问html界面呢,
首先我们把thymeleaf依赖导入pom.xml
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId>
</dependency>
然后我们把HelloController改一下。因为上面我们用的是@RestController注解,返回的是一个json字符串,不会被spring解析,那是适用于传数据使用,我们需要使用@Controller注解进行页面的跳转。
package com.hjk.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello";
}
@RequestMapping("/a")
public String index(){
return "index";
}
}
然后再resources文件夹下,建立这样的结构

页面里面写什么无所谓。
然后我们重新启动项目,通过访问"http://localhost:8080/hello" 和"http://localhost:8080/a“ 可以跳转到页面。我们可以看到,注解里面写的是url路径,return后面的是需要跳转的页面名。
解释点
| 注解 | 解释 |
|---|---|
| @Controller | 把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果 |
| @ResponseBody | 将方法返回值绑定到 Web 响应主体 |
| @RestController | @ResponseBody和@Controller组合注解,用于返回JSON字符串 |
| @RequestMapping | 用来处理请求地址映射的注解 |
| @GetMapping | 等价于@RequestMapping(value = "",method = RequestMethod.GET)就是使用Get方法提交 |
使用Spring initializr快速创建
使用maven创建还是比较麻烦的,我们使用Spring initiallizr创建。
第一步:
右上角file->new->project-->spring initializr->next,这种方式1是在联网情况下创建的,defaule就是springboot的默认网址。

第二步:
点击完next之后可以看到这个界面有Group组名,Artifact项目名。java version java版本,description项目描述,package包名。然后点击next

第三步:
在这个界面我们可以选择springboot版本,和直接加入依赖,我们在这里直接加入web依赖spring web和Template的Thymeleaf依赖,点上对勾后可以在最右边里看到你选择的依赖。然后点击next。

第四步:
之前设置完了,在这里可以直接点击finish,这样就创建了一个sprigboot项目。

我们可以看到我们的项目结构,很多springboot都帮我们创建了。

最后
我们和上面一样,创建HelloController类,并且在templates里面创建一个hello.html文件。
HelloController代码
package com.hjk.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello";
}
}
最后运行程序,访问"http://localhost:8080/hello" ,成功;
【SpringBoot学习一】开发入门--快速创建springboot程序的更多相关文章
- SpringBoot学习:IDEA中快速搭建springboot项目
项目下载地址:http://download.csdn.net/detail/aqsunkai/9805821 (一)IDEA中创建maven web项目 创建好项目后设置项目的编译路径: (二)引入 ...
- SrpingBoot入门到入坟03-基于idea快速创建SpringBoot应用
先前先创建Maven项目然后依照官方文档再然后编写主程序写业务逻辑代码才建立好SpringBoot项目,这样太过麻烦,IDE都支持快速创建,下面基于idea: 使用Spring Initializer ...
- 2springboot:快速创建springboot项目
使用IDEA快速创建springboot项目流程: 创建新的项目选择 项目的命名以及包名 需要什么包就导入什么包 进行测试的单元 <dependency> <groupId>o ...
- Spring-boot(一)通过向导快速创建Spring-boot项目
通过向导快速创建Spring-boot项目 创建步骤: 选择Spring Initializr 填写组织和模块名 选择对应的模块 注:这里左侧的模块比较多,玩家可以根据自己的实际需要自由选择,此处暂时 ...
- 【快学springboot】1.快速创建springboot项目
若图片查看异常,请前往掘金查看:https://juejin.im/post/5d00e793f265da1b614ff10b 使用spring initialize工具快速创建springboot项 ...
- 尚硅谷springboot学习20-web开发简介
使用SpringBoot 1).创建SpringBoot应用,添加我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来 3).自己编写业 ...
- [15单片机] STC15F104W开发入门及模拟串口程序
STC15F104W开发入门及模拟串口程序 Saturday, 31. March 2018 09:42AM - beautifulzzzz 前言 最近找到一款51内核的SOP8封装的8脚单片机STC ...
- SpringBoot入门系列(一)如何快速创建SpringBoot项目
这段时间也没什么事情,所以就重新学习整理了Spring Boot的相关内容.今天开始整理更新Spring Boot学习笔记,感兴趣的朋友可以关注我的博客:https://www.cnblogs.com ...
- SpringBoot学习笔记(一)入门简介
一.SpringBoot 入门简介 整体讲解内容概况: 1.1 简介 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案. Spring Boot ...
随机推荐
- linux中ctrl+c、ctrl+z、ctrl+d区别
转至:https://www.cnblogs.com/jintaoblogs/p/11343623.html 一.ctrl-c 发送 SIGINT 信号(程序终止(interrupt)信号)给前台进程 ...
- WPF优秀组件推荐之MahApps
概述 MahApps是一套基于WPF的界面组件,通过该组件,可以使用较小的开发成本实现一个相对很好的界面效果. 官方网站:MahApps.Metro - Home 开源代码:MahApps · Git ...
- 前端工程化:使用 shelljs 生成 yapi 接口文件
之前的文章介绍了使用 yapi-to-typescript (下文简称 ytt)生成接口类型定义文件,方便我们直接使用接口的请求和响应类型,能减少很多写接口类型的时间. 使用 yapi-to-type ...
- MATLAB菜鸟入门笔记【编程习惯】
1.编程标记模板 % Script file:temp_conversion.m % % Purepose: % To convert an input temperature from d ...
- 【人才】亚马逊数据科学家JD
Sr. Data Scientist - Amazon Homepage US, WA, Seattle • Job ID 271528 • Amazon Corporate LLC Job Desc ...
- Goland 时间转换的那些事
Goland 时间转换的那些事 在项目的开发过程中遇到的一个很有意思的时间转换问题 例子 假设有一个需求,是从数据库获取到了一个时间,然后需要把时间延后一天,再返回时间戳 得到伪代码 t := &qu ...
- java面试:多线程
1.多线程 同步:发送一个指令需要等待返回才能发送下一条(完成一件事才能做下一件). 异步:发送一个请求不需要等待返回,随时可以再发下一条(一次进行多个事件) 线程不安全根本原因是异步,对一个 ...
- 一比一还原axios源码(五)—— 拦截器
上一篇,我们扩展了Axios,构建了一个Axios类,然后通过这个Axios工厂类,创建真正的axios实例.那么今天,我们来实现下Axios的拦截器也就是interceptors.我们来简单看下Ax ...
- LGP4916题解
第一眼,Burnside 直接丢上去啊. 设 \(f(n,m)\) 是有 \(n-m\) 个白色珠子和 \(m\) 个白色珠子的满足题意的环的个数,容易得到答案是: \[\sum_{d|n,d|m}f ...
- LGCF235B题解
简单期望/fad 题意明确,不说了. 对于高次期望,一个套路的方法是维护低次期望(?) 考虑 dp,设 \(dp1[i]\) 为前 \(i\) 次点击中 所有连续的 \(O\) 的长度之和,\(dp2 ...