《springboot篇》新建项目
新建接口项目
参考链接:https://www.cnblogs.com/wuyizuokan/p/11117294.html
新建项目
无法链接spring官网
参考链接:https://segmentfault.com/q/1010000007938655
法一:可以使用 https://start.springboot.io/
法二:使用自定义网址,把那个网址的https后面的s去掉,使用http开头就可以访问和使用了。
代码
演示的功能就是提供一个计数器功能,可以初始化计数器,修改计数器,查询计数器当前值。没有使用数据库,直接用一个单例类来模拟了,项目结构如下:
Count:
点击查看代码
package com.me.redis.resouce.bean;
public class Count {
private int count;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
ResourceController:
点击查看代码
package com.me.redis.resouce.controller;
import com.me.redis.resouce.bean.Count;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.me.redis.resouce.service.ResourceService;
@RestController
public class ResourceController {
@Autowired
ResourceService resourceService;
@RequestMapping(value = "/me/count", method = RequestMethod.PUT)
@ResponseBody
public void initCount(@RequestBody Count count){
resourceService.initCount(count);
}
@RequestMapping(value = "/me/count", method = RequestMethod.POST)
@ResponseBody
public void modifyCount(@RequestBody Count count){
resourceService.addCount(count);
}
@RequestMapping(value = "/me/count", method = RequestMethod.GET)
@ResponseBody
public Count getCount()
{
return resourceService.getCount();
}
}
ResourceService:
点击查看代码
package com.me.redis.resouce.service;
import com.me.redis.resouce.bean.Count;
import com.me.redis.resouce.manager.ResourceManager;
import org.springframework.stereotype.Service;
@Service
public class ResourceService {
public void addCount(Count count){
if (count != null){
ResourceManager.getInstance().addCount(count.getCount());
}
}
public void minusCount(Count count){
if (count != null) {
ResourceManager.getInstance().minusCount(count.getCount());
}
}
public Count getCount()
{
Count count = new Count();
count.setCount(ResourceManager.getInstance().getCount());
return count;
}
public void initCount(Count count){
if (count != null) {
ResourceManager.getInstance().initCount(count.getCount());
}
}
}
ResourceManager:
点击查看代码
package com.me.redis.resouce.manager;
public class ResourceManager {
private int count = 0;
private static ResourceManager instance = new ResourceManager();
private ResourceManager(){}
public static ResourceManager getInstance(){
return instance;
}
public synchronized void addCount(int i){
count = count + i;
}
public synchronized void minusCount(int i){
count = count -i;
}
public int getCount(){
return count;
}
public void initCount(int i){
count = i;
}
}
点击查看代码
package com.me.redis.resouce;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ResouceApplication {
public static void main(String[] args) {
SpringApplication.run(ResouceApplication.class, args);
}
}
启动服务
在ResourceApplication类上右键启动:
服务启动正常:
测试
服务提供了三个接口:
URL都是:/me/count 只是分PUT、POST和GET,其中PUT用于初始化,POST用于修改(这里修改是累加),GET用于查询。
下面使用POSTMan进行测试:
查询接口,服务启动,count默认就是0:
初始化:
再次使用查询接口:
修改接口:
修改后查询:
新建web项目
参考链接:https://blog.csdn.net/m0_67401499/article/details/124422148
参考链接:https://www.cnblogs.com/ljsh/p/14279992.html
其中新建项目可参考上面
1项目结构
2其中html
点击查看代码
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Serving Web Content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'Hello, ' + ${name} + '!'" />
</body>
</html>
3依赖
除了原来的spring-boot-starter-test还有spring-boot-starter-web是我们创建springboot模板的时候自动加的依赖,
由于html引用的是
,所以还需要加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
4配置文件路径
在application.properties为文件中配置文件路径
spring.thymeleaf.prefix=classpath:/templates/
这一行是标明模板地址的前缀,找页面的时候会先加载templates下的子目录
写上这么一行后就可以进行访问了
5Controller访问路径
点击查看代码
package com.example.boke.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello(@RequestParam(name="name") String name,Model model){
model.addAttribute("name",name);
return "hello";
}
}
6访问网页
通过maven新建项目
参考链接:https://blog.csdn.net/danlan_shiguang/article/details/124681142
参考链接:https://blog.csdn.net/qq_39056803/article/details/123125814
新建项目
点击New Project,选择maven项目
填写项目名称
生成结构如下
添加依赖
添加SpringBoot父工程
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
</parent>
添加Web场景依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
代码
主程序:
在com.comleader.springboot包下新建
点击查看代码
@SpringBootApplication
public class SpringBootTestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootTestApplication.class, args);
}
}
Controller:
点击查看代码
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
配置文件
application.yml设置端口
server:
port: 8888
端口不生效
参考链接:https://blog.csdn.net/qq_39056803/article/details/123125814
无效原因一:写法问题
错误示范:
差距就是8081与前面的冒号之间还有一个空格,要是没有的话,就是上图,这样是无效的。
正确示范:
无效原因二:放置在linux上无效,没有配置address。
此内容详情看链接。
运行服务
访问网址
访问地址:
http://127.0.0.1:8888/hello