笔者使用的是myeclipse进行的开发。
顺带一提,RESTful 风格,指的是:
对网络上所有的资源都有一个资源标志符。
对资源的操作不会改变标识符。
同一资源有多种表现形式
所有操作都是无状态的
一般特性
幂等性:对同一 REST 接口的多次访问,得到的资源状态是相同的。
安全性:对该 REST 接口访问,不会使服务器端资源的状态发生改变。
它所采用的就是URI (Uniform Resource Identifier,统一资源标志) 而不是 URL(Uniform Resource Locator,统一资源定位) 。
先创建一个maven project,
填好一下内容即可
如果出现“fail to read artifact descriptor…”问题,可以尝试一下下面博文的方法(即删除本地的maven库然后重新下载):
maven版本不支持的问题
此外,如果pom.xml仍然有错误,但是你可以导包下载更新maven库,就暂时放着吧。原因有可能是用的myeclipse自带的maven而出现的各种问题。
随后我们对pom.xml进行配置,添加如下代码。
<project>
...
<parent>
//使用父工程spring boot
//版本可以官网上查找,后面的依赖也要在该版本支持范围内
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.6.5version>
parent>
...
<dependencies>
...
<dependency>
//导入spring依赖,web场景
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
dependencies>
project>
由此我们就可以用springboot编写代码。
在src下,创建下图package结构。
注意,MainApplication.java 通常就是我们的主类,有它开始执行。
controller 就是控制层的包。
注意让 MainApplication.java 与 controller 在同一级且它们需要在一个boot package 下面,同时该包不可以是default package 。
因为 SpringBoot 项目的 Bean 装配默认根据 Application 类所在的包,从上往下扫描,所以 MainApplication.java(里面的 main 函数) 要放在最外层。
MainApplication.java :
package boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/*
*
*@SpringBootApplication:告知这是一个springboot应用
*主程序类
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
/*
*此处就是将类信息和参数传入spring的run方法。由此完成部署
*/
SpringApplication.run(MainApplication.class, args);
}
}
我们可以写一个登录类,处理用户登录请求
package boot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/*
*控制层内容
*/
@Controller
public class LoginController {
/*
* @ResponseBody
* 有要返回的值给前端时,我们用该项标识
* 如果每一项都有返回值,我们可以写在类上
* */
@ResponseBody
/*
* @RequestMapping
* request请求对应的映射,,当有发送hello的请求时,这个方法将处理
* 类似Servlet的*.do的映射,用来查找哪一个来处理
* 同样的,参数可以接收类似servlet中的参数,此处用无参
* */
@RequestMapping("/hello")
public String handle_1() {
return "你好,登录成功";
}
/*
*
* 也可以用 @RestController 代替
* 它是 @ResponseBody 与 @RequestMapping 的集合体
*
* */
}
正常来说,我们用Servlet就需要写成下面的样子
@WebServlet("/hello")
public class hello extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public login() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setCharacterEncoding("utf-8");// 响应编码处理,传输时
response.setContentType("utf-8");// 响应编码处理,显示时
response.setStatus(200);//成功
response.setContentType("text/plain");
response.getWriter().append(" 你好,登录成功");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
通过下图的方式,运行MainApplication.java 即可。
你会发现,我们甚至没有配置tomcat。因为springboot内有tomcat的环境。
默认网址则是 http://localhost:8080/hello
注意我们没有主页,只有接口。因此需要这种URI的方式访问。
在左下方有一个 springboot 管理窗口(没有的话请在上方找到window->showview进行设置)
我们仅需要一个配置文件来配置所有东西。创建一个file叫做
application.properties
比如我们修改页面端口,再次运行,就会发现端口已被修改。
server.port=8888
如果没有修改成功,看一下上方的路径中,是否有你的配置文件(Build Path)
可配置得内容可以参考 Common Application Properties
引入SpringBoot提供的插件,我们可以把项目打包成为一个jar包,jar中自带有运行环境,可以直接运行。
需要在 pom.xml 中输入下列代码。
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
随后我们需要右击 pom.xml,run as, goal的部分设置理项目打包就好。
完成后,refresh 一下 target文件夹即可。
打开本地位置
随后我们可以直接运行其中的jar包,用 java - jar 命令