小编ale*_*ejo的帖子

使用Spring Data Rest查询集合时获取重复项

我在这个简单模型的集合上有重复的结果:实体Module和实体Page.A Module有一组页面,Page属于该模块.

这是通过Spring BootSpring Data JPASpring Data Rest建立的.

完整的代码可以在GitHub上访问

实体

这是实体的代码.为简洁起见,删除了大多数setter:

Module.java

@Entity
@Table(name = "dt_module")
public class Module {
  private Long id;
  private String label;
  private String displayName;
  private Set<Page> pages;

  @Id
  public Long getId() {
    return id;
  }

  public String getLabel() {
    return label;
  }

  public String getDisplayName() {
    return displayName;
  }

  @OneToMany(mappedBy = "module")
  public Set<Page> getPages() {
    return pages;
  }

  public …
Run Code Online (Sandbox Code Playgroud)

spring-data-jpa spring-data-rest spring-boot

9
推荐指数
1
解决办法
4257
查看次数

在 Struts 2 中使用 Spring 控制器创建 REST API

我有一个应用程序,它使用 Struts(版本 2.3.16.1 GA)和 Spring(版本 3.2.4 GA)将对象注入到 Actions 等中。

现在,我需要为我的应用程序创建一个 REST API,而我不能为此使用 Struts 的 REST 插件,所以我认为既然 Spring 已经存在,我可以只创建 Spring 控制器,然后使用 Spring 为 API 提供服务。

假设我当前的应用程序在app服务器上的上下文中运行,因此我将像这样访问它:

http://www.myserver.com:8080/app/some/path/anAction.action
Run Code Online (Sandbox Code Playgroud)

然后这就是我当前应用程序的整个流程的工作方式。现在我打算做的是创建一个将由我的 REST API 专门使用的特定路径,所以我尝试让它像这样工作,例如:

http://www.myserver.com:8080/app/api/users
Run Code Online (Sandbox Code Playgroud)

我想映射/api/*到 Spring,所以我所有的控制器都将住在那里。

以下是我为实现此目的所做的配置的相关部分。

web.xml

http://www.myserver.com:8080/app/some/path/anAction.action
Run Code Online (Sandbox Code Playgroud)

struts.xml

http://www.myserver.com:8080/app/api/users
Run Code Online (Sandbox Code Playgroud)

SpringApplicationConfiguration.java

<filter>
    <filter-name>struts-prepare</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
</filter>
<filter>
    <filter-name>struts-execute</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts-prepare</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>
    <filter-name>struts-execute</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

<servlet>
    <servlet-name>rest-api</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    <init-param>
        <param-name>contextClass</param-name>
        <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
    </init-param>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>com.myapp.spring.SpringApplicationConfiguration</param-value>
    </init-param>
</servlet>
<servlet-mapping> …
Run Code Online (Sandbox Code Playgroud)

java rest spring struts2 spring-mvc

5
推荐指数
1
解决办法
2579
查看次数