小编Ali*_*ani的帖子

Spring Boot中的JPA存储库"没有类型的限定bean"

我正在使用Spring Boot实现Rest API.由于我的实体类来自另一个包的包,我必须使用注释指定它EntityScan.此外,我曾经EnableJpaRepositories指定了定义JPA存储库的包.这是我的项目的样子:

在此输入图像描述

//Application.java

@Configuration
@EnableAutoConfiguration
@ComponentScan
@EntityScan("org.mdacc.rists.cghub.model")
@EnableJpaRepositories("org.mdacc.rists.cghub.ws.repository") 
Run Code Online (Sandbox Code Playgroud)

在我的控制器类中,我有一个自动装配的SeqService对象.

//SeqController.java

@Autowired private SeqService seqService;

@RequestMapping(value = "/api/seqs", method = GET, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<List<SeqTb>> getSeqs() {
    List<SeqTb> seqs = seqService.findAll();
    return new ResponseEntity<List<SeqTb>>(seqs, HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)

SeqService是一个接口,我从中创建了一个Bean类SeqServiceBean.在SeqServiceBeanI中自动安装了JPA存储库:

// SeqServiceBean.java

@Autowired private SeqRepository seqRepository;

@Override
public List<SeqTb> findAll() {
    List<SeqTb> seqs = seqRepository.findAll();
    return seqs;
}

//SeqRepository.java

@Repository
public interface SeqRepository extends JpaRepository<SeqTb, Integer> {

    @Override
    public List<SeqTb> findAll();

    public SeqTb …
Run Code Online (Sandbox Code Playgroud)

java spring jpa spring-data spring-boot

15
推荐指数
1
解决办法
3万
查看次数

zookeeper与spring cloud配置服务器有什么区别?

zookeeper与spring cloud配置服务器有什么区别?它们都将配置存储在服务器中并使其可供客户端使用.

应该何时使用另一个?

cloud spring config spring-cloud apache-zookeeper

14
推荐指数
1
解决办法
5430
查看次数

Spring MVC的ehcache或spring cache中最好的Cache实践是什么?

计划在基于Spring网络的应用程序中实现静态数据的缓存机制,任何人都可以解释哪个是最好的以及它是如何工作的?

  • 的Ehcache
  • Spring Cache

java spring spring-mvc ehcache spring-cache

13
推荐指数
1
解决办法
1万
查看次数

停止Spring计划执行,如果它在一段固定时间后挂起

我使用Spring Framework Scheduled来安排我的工作使用cron每5分钟运行一次.但有时我的工作无限期地等待外部资源,我不能把超时放在那里.我不能fixedDelay像以前的过程一样进入等待无限模式,我必须每隔5分钟刷新一次数据.

所以我在Spring框架中寻找任何一个选项来在它成功运行Scheduled之后停止该进程/线程fixed-time.

我发现下面的设置初始化ThreadPoolExecutor为120秒keepAliveTime,我把它放在@Configuration课堂上.任何人都能告诉我这项工作是否符合我的预期.

@Bean(destroyMethod="shutdown")
public Executor taskExecutor() {
    int coreThreads = 8;
    int maxThreads = 20;
    final ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(
            coreThreads, maxThreads, 120L, 
            TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>()
    );
    threadPoolExecutor.allowCoreThreadTimeOut(true);

    return threadPoolExecutor;
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-scheduled spring-boot

13
推荐指数
2
解决办法
7142
查看次数

接受/返回XML/JSON请求和响应 - Spring MVC

我需要编写一个休息服务,它接受XML/JSON作为输入(POST方法)和XML/JSON作为输出(基于输入格式).我尝试过以下方法来实现这一点,但没有帮助.Endpoint方法同时接受XML/JSON但在响应时它总是根据@RequestMapping -produces中指定的顺序提供JSON或XML.任何帮助都将非常感谢.

我的端点方法:

@RequestMapping(value = "/getxmljson", method = RequestMethod.POST,produces={"application/json","application/xml"},
        consumes={"application/json", "application/xml"})
public @ResponseBody Student processXMLJsonRequest(@RequestBody Student student)
        throws Exception {
    System.out.println("*************Inside Controller");
    return student;
}
Run Code Online (Sandbox Code Playgroud)

POJO课程:Student.java

import java.io.Serializable;
import java.util.ArrayList;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@XmlRootElement(name = "student")
@XmlType(propOrder = {"id", "name", "graduationTime", "courses"})
@JsonPropertyOrder({"id", "name", "graduationTime", "courses"})
public class Student implements Serializable {
    private static final long serialVersionUID = 1L;

    private int id;
    private String name;
    private String graduationTime;
    private ArrayList<Course> courses = new …
Run Code Online (Sandbox Code Playgroud)

java xml spring json spring-mvc

12
推荐指数
3
解决办法
5万
查看次数

无法避免使用Spring Boot和Logback将SQL登录到控制台

尽管使用Logback配置了Hibernate的特定日志记录,我的Spring Boot应用程序仍然在控制台中显示Hibernate查询,如下所示:

<appender name="HIBERNATE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOGDIR}/hibernate.log</file>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOGDIR}/hibernate.log.%d</fileNamePattern>
    </rollingPolicy>
</appender>

<logger name="org.hibernate" additivity="false">
    <appender-ref ref="HIBERNATE"/>
</logger>

<logger name="org.hibernate.SQL" additivity="false">
    <appender-ref ref="HIBERNATE"/>
</logger>

<logger name="org.hibernate.type.descriptor.sql" additivity="false">
    <appender-ref ref="HIBERNATE"/>
</logger>
Run Code Online (Sandbox Code Playgroud)

它会将Hibernate的日志(包括查询)发送到文件hibernate.log.但我还想避免在控制台中进行查询,我认为应该使用此配置进行查询.

我错过了什么?

java spring hibernate logback spring-boot

12
推荐指数
4
解决办法
1万
查看次数

Spring Data Pageable:返回空内容

我是Spring Data和Spring MVC的新手,我不明白为什么我会得到空的内容:

@RequestMapping(value="/pages", method=RequestMethod.GET)
@ResponseBody 
public Page<Client> contactsPages(@RequestParam int page, @RequestParam int size) {
    Pageable pageable = new PageRequest(page, size, new Sort("id"));
    Page<Client> pageResult = clientRepository.findAll(pageable);

    return pageResult;
} 
Run Code Online (Sandbox Code Playgroud)

我测试网址时json的结果是:

{"content":[],"last":true,"totalElements":2,"totalPages":1,"size":5,"number":1,"sort":[{"direction":"ASC","property":"id","ignoreCase":false,"nullHandling":"NATIVE","ascending":true}],"first":false,"numberOfElements":0}
Run Code Online (Sandbox Code Playgroud)

如果您有使用Spring Data和Spring MVC以及AngularJS制作可分页请求的好示例; 这对我来说将是一个很大的帮助.

java spring spring-mvc spring-data spring-data-jpa

12
推荐指数
1
解决办法
9704
查看次数

'APPLICATION_JSON'和'APPLICATION_JSON_VALUE'之间的区别

我是春天开发的新手,想知道MediaType.APPLICATION_JSON_VALUE和之间的区别是 MediaType.APPLICATION_JSON什么?

我想到两者都代表相同的application/json内容类型,但如果我把MediaType.APPLICATION_JSON一些编译器错误显示添加@controller@ResponseBody注释我的休息控制器和什么时候使用MediaType.APPLICATION_JSON

@RequestMapping(value="/invite", method = POST, consumes = { MediaType.APPLICATION_JSON })
public @ResponseBody String sendInvite( ... ) { ... }
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

12
推荐指数
1
解决办法
1万
查看次数

如何在IntelliJ中使用JDK 9启动新的JavaFX项目

我试图在IntelliJ中启动一个新的JDK 9项目,但是当我尝试运行它时,我在make过程中遇到以下错误:

错误:java:invalid flag:-release

我知道我没有正确设置但似乎无法找到任何与在IntelliJ中使用Jigsaw建立项目有关的内容.

编辑 这是该问题的屏幕截图.无法在任何地方找到与此相关的任何内容.

我在IDE中没有编译器错误.它只是在build/run命令上失败了.这是一个干净的IntelliJ安装,新的项目从JDK 9开始.

在此输入图像描述

intellij-idea java-9

12
推荐指数
1
解决办法
3966
查看次数

如何使用@ControllerAdvise(和@RestControllerAdvise)类保留Spring的内置REST响应JSON主体?

在Spring 4.x中,如果使用扩展的@RestControllerAdvise(或@ControllerAdvice),ResponseEntityExceptionHandler默认情况下,对于标记为的参数,不再返回具有良好且信息丰富的JSON响应主体的默认异常处理@Valid.

如何在使用ResponseEntityExceptionHandler基础时返回默认的JSON实体@RestControllerAdvice

以下是描述此问题的简单但完整的示例.使用这些类:

@RestController
class CarsController {

  @PostMapping("/cars")
  public void createCar(@RequestBody @Valid Car car) {
    System.out.println("Creating " + car);
    throw new WhateverException();
  }

  @ExceptionHandler(WhateverException.class)
  @ResponseStatus(HttpStatus.EXPECTATION_FAILED)
  public void handleWhateverException(){
    System.out.println("Handling a WhateverException.");
  }

}

class Car {

  @NotNull
  private String make;

  @NotNull
  private String model;

  ...getter/setters omitted for brevity...
}

class WhateverException extends RuntimeException {}
Run Code Online (Sandbox Code Playgroud)

如果提交POST/cars

{
    "make": "BMW"
}
Run Code Online (Sandbox Code Playgroud)

它响应a 400和以下身体:

{ …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc spring-boot

12
推荐指数
2
解决办法
1792
查看次数