Vuer ==> Javaer 入门

163 阅读3分钟

创建项目

当前使用的是IDEA2025.3.1版本

创建新项目:

image.png

2025.3.1的版本无法选择Java8,可以把最上面的Service URL改成 start.aliyun.com

然后最开始选择Spring Web即可

创建完毕之后目录应该是酱子的:

image.png

结构

  1. com.zsgctest.demo.web是在初始化的时候自己定义的,这是一个包package
  2. BasicController 这是一个controller,里面放一些负责处理用户请求的方法,‌调用相应的服务层方法处理业务逻辑,‌并将结果返回给视图层展示。‌

我的理解是写一些方法,然后入参和方法类型不同,并用对应的mapping注解,来做对应的CURD操作

这是当前无sql的模拟CURD操作代码


package com.zsgctest.demo.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.*;

/**
 * @author <a href="mailto:chenxilzx1@gmail.com">theonefx</a>
 */
@Controller
@RestController
// @RequestMapping("/users") 这里如果加上这个,那么下面的所有路由均在users下面访问
public class BasicController {

    // http://127.0.0.1:8080/hello?name=lisi
    @RequestMapping("/hello")
    @ResponseBody
    public String hello(@RequestParam(name = "name", defaultValue = "unknown user") String name) {
        return "Hello " + name;
    }
    // 创建线程安全的Map,模拟users信息的存储
    static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());

    // 创建一个post的请求
    @PostMapping("/")
    public String postUser(@RequestBody User user) {
        // @RequestBody注解用来绑定通过http请求中application/json类型上传的数据
        users.put(user.getId(), user);
        return "success";
    }

    // 创建一个查询接口
    @GetMapping("/users")
    public List<User> getUsers() {
        // 还可以通过@RequestParam从页面中传递参数来进行查询条件或者翻页信息的传递
        List<User> r = new ArrayList<User>(users.values());
        return r;
    }

    // 创建一个getUser的请求
    @GetMapping("/user/{id}")
    public User getUser(@PathVariable long id) {
        // url中的id可通过@PathVariable绑定到函数的参数中
        return users.get(id);
    }

    // 修改user
    @PutMapping("/user/{id}")
    public String putUser(@PathVariable long id, @RequestBody User user) {
        User u = users.get(id);
        u.setName(user.getName());
        u.setAge(user.getAge());
        users.put(id, u);
        return "success";
    }

    // 根据id删除user
    @DeleteMapping("/user/{id}")
    public String deleteUser(@PathVariable long id) {
        users.remove(id);
        return "success";
    }
}

我们创建了一个名为BasicController的类,并用@Controller注释标记它。然后,我们用@RequestMapping("/hello")注释类中方法,指定路由路径。在hello()方法上,我们用@GetMapping注释指定HTTP GET请求的路径。最后,我们用@ResponseBody注释指定返回的字符串直接写入HTTP响应体。

这个Controller会响应对"/hello"路径的GET请求,并返回对应字符串。

  1. DemoApplication

这是一个主类,里面存放main方法,是一个起点

package com.zsgctest.demo.web;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/*
* SpringBootApplication是一个组合注解
* 包含了@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan三个注解。它通常放在应用程序的主类上。
* @SpringBootConfiguration:继承自@Configuration,指示这个类包含一个或多个@Bean方法,并且可以由Spring进行配置。
* @EnableAutoConfiguration:启用Spring Boot的自动配置功能,它尝试根据你的类路径和你的beans自动配置你的Spring应用程序。
* @ComponentScan:Spring会自动扫描该类所在的包下的controller、service、repository等组件,标注在类上,会在Spring容器中注册为Bean。
 */
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

3. User

这是定义数据的方法,此处使用了lombokdata注解,可以不用写getset方法

package com.zsgctest.demo.web;

import lombok.Data;

/**
 * @author <a href="mailto:chenxilzx1@gmail.com">theonefx</a>
 */
@Data
public class User {

    private String name;

    private Integer age;

    private Long id;
}

这三个文件中均使用了 package com.zsgctest.demo.web 应该是表明这是一个包的范围

  1. application.properties

此处暂时只是定义了端口,应该还有更多可以定义的东西~

  1. pom.xml

这应该是maven的依赖文件定义的地方~ 我在此处增加了lombok的引用

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

通过刷新maven,然后可以在DemoApplication中运行项目,使用localhost:8080进入项目.