当前位置: 首页 > 知识库问答 >
问题:

Spring防尘套应用

陈畅
2023-03-14

我试图通过遵循这里的教程,使用Spring boot在Java中创建一个RESTful应用程序。我想修改它,以便可以从URL中提取标识符,并使用它来服务请求。

所以http://localhost:8080/members/

  1. 将所有http://localhost:8080/members/*映射到单个控制器。
  2. 从URL中提取。
  3. 按照MVC架构,提取memberId并使用它的逻辑应该是控制器的一部分还是单独的类?

我是Spring/Spring-boot/MVC的新手。开始时很困惑。所以请耐心回答我的新手问题。


共有2个答案

钱渊
2023-03-14

正如您在下面的代码中所看到的,客户服务在一个控制器中获得一个控制器并添加新客户。

因此,您将有2项服务:

http://localhost:8080/customer/

http://localhost:8080/customer/{id}

@RestController("customer")
public class SampleController {


@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Customer greetings(@PathVariable("id") Long id) {
    Customer customer = new Customer();
    customer.setName("Eddu");
    customer.setLastname("Melendez");
    return customer;
}

@RequestMapping(value = "/{id}", method = RequestMethod.POST)
public void add(@RequestBody Customer customer) {

}

class Customer implements Serializable {

    private String name;

    private String lastname;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getLastname() {
        return lastname;
    }
}

}

龙志勇
2023-03-14

将所有http://localhost:8080/members/*映射到单个控制器。

您可以在请求映射中使用占位符,以处理多个URL。例如:

@RequestMapping("/members/{id}")

从URL中提取id

您可以使用PathVariable注释将占位符的值注入控制器方法,该注释的值与占位符的名称匹配,在本例中为“id”:

@RequestMapping("/members/{id}")
public Member getMember(@PathVariable("id") long id) {
    // Look up and return the member with the matching id       
}

根据MVC架构,提取和使用memberId的逻辑应该是控制器的一部分还是一个单独的类?

您应该让Spring MVC从URL中提取成员id,如上图所示。至于使用它,您可能会将URL传递给某种提供findById方法的存储库或服务类。

 类似资料:
  • 我正在尝试使用spring boot和hibernate。当我使用存储库时,它工作得很好,但我正在尝试使用Hibernate会话来创建DAO,而这个DAO不是事务的一部分。 这是测试代码: 应用Java语言 UserBusinessImpl。java: 用户存储库。Java语言 用户DAO: 当我尝试getCurrentSession()时,它抛出了一个错误。openSession()与我的事务分

  • 我在本地系统上创建了一个带有Rest控制器和Oracle的spring boot应用程序,通过IDE它运行良好,mvn build was fine包也很好,但如果我将其作为可执行jar运行,我会得到以下错误。我有申请表。我提供的所有spring的属性。数据源,但这里我得到了错误。请告知。 这是我的pom.xml: 我正在尝试Spring Boot并尝试将其作为可执行的jar运行。

  • 我正在尝试使用现有的Gradle Spring MVC项目设置Spring执行器。我无法使用@EnableAutoConfiguration。不幸的是,我无法到达执行器endpoint,我想我遗漏了一些东西。 项目中的Spring依赖项包括: 我正在尝试使用以下内容配置project: 在属性文件中,我添加了: 没有启用执行器endpoint,当尝试访问它们时,我得到404。我经历了许多相关问题,

  • 我目前正在尝试编写一个Spring Boot启动器,它将使用API网关自动验证我们的微服务,并在所有传出请求(针对网关)的标头中包含访问令牌。 我正在创建一个RestTemboard bean并为其提供我们的自定义拦截器,但我的问题是,通过这样做,我阻止其他团队(将使用此启动器)使用他们自己的RestTemboard配置,因为他们必须定义导致多个bean存在的相同bean。 是否有其他方法可以拦截

  • 我目前正在开发一个以Spring Boot为后端的Angular 4应用程序。我使用Maven来构建如中所述配置的项目https://blog.jdriven.com/2016/12/angular2-spring-boot-getting-started/ 我现在想用其他语言翻译这个应用程序。我看着http://www.baeldung.com/spring-boot-international

  • 我想将Spring启动执行器添加到我的应用程序,但当我添加此依赖项时 我得到以下错误 java.lang.reflect.InvocationTargetException at_NativeMethodAccessorImpl.invoke0(Native Method)at(...)由以下原因引起:org.springframework.beans.factory.不满意DependencyE