我使用Springfox遇到了一些小麻烦.我无法为@RestController类设置名称.
我正在使用Spring启动和Swagger2.
以下代码将在springfox ui中生成一个名为"rest-status-controller"的控制器.我期待一个"应用程序状态".还有其他配置我不知道吗?
@Api("Application Status")
@RestController
@RequestMapping("/rest/status")
public class RestStatusController {
@ApiOperation(value="Get components current status")
@RequestMapping(method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)
public String global() {
//...
}
@ApiOperation(value="Get mysql current status")
@RequestMapping(value="/mysql" method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)
public String mysql() {
//...
}
}
Run Code Online (Sandbox Code Playgroud) 我想验证几种日期格式,如下例所示:
YYYY
YYYY-MM
YYYY-MM-DD
Run Code Online (Sandbox Code Playgroud)
验证必须确保日期格式正确且日期存在.
我知道Java 8提供了一个新的Date API,所以我想知道它是否能够完成这样的工作.
有没有更好的方法使用Java 8 date API?将Calendar类与lenient参数一起使用仍然是一个好习惯吗?
在我的REST服务应用程序中,我计划创建一个@ControllerAdvice类来捕获控制器抛出异常并根据错误类型返回ResponseEntity对象.
但我已经设置了一个@RestController扩展ErrorController来捕获"whitelabel"错误.
这两个人是否以任何方式干涉?在哪种情况下,在设置@ControllerAdvice时会调用ErrorController?
编辑ErrorController代码按要求
@RestController
public class ControllerCustomError implements ErrorController{
//error json object
public class ErrorJson {
public Integer status;
public String error;
public String message;
public String timeStamp;
public String trace;
public ErrorJson(int status, Map<String, Object> errorAttributes) {
this.status = status;
this.error = (String) errorAttributes.get("error");
this.message = (String) errorAttributes.get("message");
this.timeStamp = errorAttributes.get("timestamp").toString();
this.trace = (String) errorAttributes.get("trace");
}
}
private static final String PATH = "/error";
@Value("${hybus.error.stacktrace.include}")
private boolean includeStackTrace = false;
@Autowired
private ErrorAttributes errorAttributes;
@RequestMapping(value = PATH)
ErrorJson …Run Code Online (Sandbox Code Playgroud) 我计划使用Spring Boot将MVC应用程序从Spring 3移植到Spring 4.
此Web应用程序使用Apache Tiles.
考虑到Thymeleaf似乎是Spring的新标准,并且有很好的集成,我有点困惑.
在这个应用程序中配置Tiles很痛苦.
我们在这个应用程序中有20个JSP页面.
问题:
我不明白如何使用lambdas将方法作为参数传递.
考虑以下(不编译)代码,如何完成它以使其工作?
public class DumbTest {
public class Stuff {
public String getA() {
return "a";
}
public String getB() {
return "b";
}
}
public String methodToPassA(Stuff stuff) {
return stuff.getA();
}
public String methodToPassB(Stuff stuff) {
return stuff.getB();
}
//MethodParameter is purely used to be comprehensive, nothing else...
public void operateListWith(List<Stuff> listStuff, MethodParameter method) {
for (Stuff stuff : listStuff) {
System.out.println(method(stuff));
}
}
public DumbTest() {
List<Stuff> listStuff = new ArrayList<>();
listStuff.add(new Stuff());
listStuff.add(new Stuff());
operateListWith(listStuff, methodToPassA); …Run Code Online (Sandbox Code Playgroud) 我想创建一个处于暂停状态的工作。
Trigger trigger = TriggerBuilder.newTrigger()
/* Trigger config */
.build();
JobDetail job = JobBuilder.newJob(JobLauncher.class)
/* Job Config */
.build()
//schedule job (might be in paused state...)
scheduler.scheduleJob(job, trigger);
Run Code Online (Sandbox Code Playgroud)
我在 TriggerBuilder 或 JobBuilder 中找不到任何方法来将触发器或作业设置为在计划时处于暂停状态。
我被迫在调度后使用这样的东西
//pause just scheduled job...
scheduler.pauseJob(jobKey);
Run Code Online (Sandbox Code Playgroud)
有什么办法吗?
枚举是否能够存储对getter方法的引用,使用Supplier?
这样使用:
String value = myEnum.getValue(object)
Run Code Online (Sandbox Code Playgroud)
我无法想象如何在不编译错误的情况下编写它.
我正在尝试为Spring Boot(Spring 4)应用程序编写测试.
我的Junit测试类配置如下,以允许自动装配.
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SpringApp.class)
public class MyServiceTest {
...
Run Code Online (Sandbox Code Playgroud)
我src/main/resources/application.properties是这样的
spring.jpa.database=POSTGRESQL
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=update
spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost/mydb
spring.datasource.username=BNF0016779
spring.datasource.password=
Run Code Online (Sandbox Code Playgroud)
在测试上下文中,src/test/resources/application.properties只是空的.
在像往常一样查询数据库,创建对象...
但我想创建一个数据init sql.
从一个奇怪的行为开始,似乎Spring在类路径中加载任何"schema.sql".不需要像下面这样的东西?
//This is not required to execute schema.sql
@Configuration
public class DatabaseTestConfig {
@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.addScript("classpath:schema.sql")
.build();
}
}
Run Code Online (Sandbox Code Playgroud)
然后,我无法从此SQL创建任何表.永远收到org.h2.jdbc.JdbcSQLException: Table "MY_TABLE" already exists; SQL statement:
H2应该是一个内存中的数据库,两个启动之间不保存数据!为什么我会收到这些错误?
有任何想法吗 ?谢谢
我面临着石英和失火的痛苦问题。
我的应用程序创建允许用户创建CronTrigger和SimpleTrigger作业。
可以暂停/恢复每个作业(使用Scheduler.pauseJob和Scheduler.resumeJob)
调度程序本身可以设置为待机状态。
我们想抛弃所有的失火:
如本博客文章http://www.nurkiewicz.com/2012/04/quartz-scheduler-misfire-instructions.html中所述,我已经尝试过
但是没有人可以放弃失火。
我目前在作业执行方法中使用丑陋的解决方法:
public void execute(JobExecutionContext context) throws JobExecutionException {
Date dateNow = new Date();
long diff = dateNow.getTime() - context.getScheduledFireTime().getTime();
if (diff > 500)
{
//its a misfire
return;
}
/* rest of job execution code */
Run Code Online (Sandbox Code Playgroud)
如果ScheduledFireTime比现在早500毫秒以上,则将其丢弃。
但似乎有时在生产环境中,这允许执行一些作业(据报道,重启应用程序时会发生)
那有可能吗?有什么漂亮的方法可以避免失火?
Quartz版本:2.1.7(在Spring 3.2.5应用程序中)
石英。属性
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.dataSource=psqldatasource
org.quartz.dataSource.psqldatasource.driver=${db.driver}
org.quartz.dataSource.psqldatasource.URL=${db.url}
org.quartz.dataSource.psqldatasource.user=${db.usr}
org.quartz.dataSource.psqldatasource.password=${db.pwd}
org.quartz.threadPool.threadCount = 3
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
Run Code Online (Sandbox Code Playgroud)
对于Cron:
JobDetail job = JobBuilder.newJob(JobLauncher.class)
.withIdentity(jobIdentifierBean.getNameJob(), jobIdentifierBean.getNameGroup())
.usingJobData(...) //defining …Run Code Online (Sandbox Code Playgroud) 我需要访问JPEG和TIFF元数据。
对于此任务,我尝试使用Apache Commons Imaging库,该库似乎在Maven Central中不可用。如何添加此依赖项?
java ×8
java-8 ×3
spring ×3
spring-boot ×2
spring-mvc ×2
enums ×1
exception ×1
jsp ×1
junit ×1
lambda ×1
maven ×1
spring-test ×1
springfox ×1
swagger ×1