考虑以下项目布局(假设A和B相互依赖):
.
|-- bin1
|-- bin2
|-- src1
| `-- A.java
`-- src2
`-- B.java
Run Code Online (Sandbox Code Playgroud)
编译后,我希望这些类驻留在各自的文件夹中:
.
|-- bin1
| `-- A.class
|-- bin2
| `-- B.class
|-- src1
| `-- A.java
`-- src2
`-- B.java
Run Code Online (Sandbox Code Playgroud)
从命令行可以很简单:
$ javac -implicit:none -sourcepath src1:src2 -d bin1 src1/*
$ javac -implicit:none -sourcepath src1:src2 -d bin2 src2/*
Run Code Online (Sandbox Code Playgroud)
如果这样配置,Eclipse也会这样做.但我无法弄清楚如何用Ant做到这一点.
附录:我目前的javac
任务:
<javac destdir="${classes.1.dir}">
<src path="${src.1.dir}" />
<src path="${src.2.dir}" />
</javac>
<javac destdir="${classes.2.dir}">
<classpath path="${classes.1.dir}" />
<src path="${src.2.dir}" />
</javac>
Run Code Online (Sandbox Code Playgroud)
注意循环依赖.在第二个任务的效果很好,它只是编译什么的src2 …
我正在使用 Spring 3.1 并希望包含 Spring Web Flow 2.3。我真正喜欢 Spring 的一件事是,您可以不使用 XML 配置,而支持使用@Configuration
和@Bean
注释的纯 Java 配置。
但是,我还没有找到如何以这种方式配置 Web Flow。在我的 Google 搜索中出现的文档都只涉及 XML 配置。可能吗,有人有任何指示吗?
编辑:我不是在问流定义,而是在询问webflow-config
模式的替代品。目前,诸如flow-registry
和 之类的配置项flow-executor
必须包含在 Spring-XML 文件中,以及引用它们的流处理程序映射。
对于大型结果集,增加提取大小很重要.关于如何设置Spring的获取大小的讨论很多JdbcTemplate
.但是,我们通常使用Spring Data进行数据库访问.假设我们使用JPA和Hibernate作为提供者,我如何设置Spring Data查询的获取大小?
我这里有一个使用 Liquibase 更新的数据库。如果我理解正确的话,Liquibase 将应用变更集并向表中写入一行,DATABASECHANGELOG
其中包含执行日期和 MD5 校验和。这样,Liquibase 就可以发现变更集何时发生(意外)更改。
然而,在这个数据库中,许多(大多数)条目MD5SUM
都是NULL
. 我不知道为什么会这样。这是正常的操作模式吗?
使用 Liquibasestatus
命令时,我看到许多\xe2\x80\x98unapplied\xe2\x80\x99更改。如果没有 MD5 和,Liquibase 如何确定这一点?或者没有 MD5 和的变更集被视为已更改。
我厌倦了添加手动日志来调试我编写的每个方法。
我开始了解jcabi 的@Loggable
注释,但没有成功实施,非常感谢您的帮助。
下面是我尝试过的代码。
import com.jcabi.aspects.Loggable;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class Jcabi {
@Loggable
private static String checkJcabi(String stringToPrint) {
log.info("Print Successfull");
return stringToPrint;
}
public static void main(String[] args) {
checkJcabi("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
IDE 控制台打印:
[main] INFO com.amazon.optimus.cpamutil.utils.Jcabi - Print Successfull
Run Code Online (Sandbox Code Playgroud)
这是log.info()
我在方法中添加的日志,并且没有@Loggable
像这篇文章中提到的这样(下面)的注释日志
[INFO] com.example.Foo #power(2, 10): 1024 in 12?s
[INFO] com.example.Foo #power(3, 3): 27 in 4?s
Run Code Online (Sandbox Code Playgroud)
以下是我使用的依赖包:
JCabiAspects = 1.0;
方面J = 6.0;
Slf4j = 1.7;
Slf4j_Simple = 1.7; …
使用 Gradle 及其 JUnit 4 支持,我可以使用如下--tests
选项选择特定测试:
$ ./gradlew test --tests de.mp.BarMT
Run Code Online (Sandbox Code Playgroud)
此选项在使用 JUnit 5 Gradle 任务时无效。test
从命令行使用任务时,它会被静默忽略。真正的工作是由junitPlatformTest
反正完成的,它不支持该选项:
$ ./gradlew clean junitPlatformTest --tests de.mp.BarMT
…
Problem configuring task :junitPlatformTest from command line.
> Unknown command-line option '--tests'.
Run Code Online (Sandbox Code Playgroud)
JUnit 5 插件是否支持选择特定测试?
从版本2.0.0开始,Togglz提供激活策略以使用功能.例如,您可以连接应启用该功能的服务器IP地址列表.但是,这些策略如何实际附加到功能上?我只看到我可以在Togglz控制台中更改策略,甚至可以在数据库中手动编辑数据.
我正在寻找的是一些非常类似的默认机制@EnabledByDefault
.我可以实现一个自定义状态存储库,它甚至可以查找注释,但我怀疑这个解决方案是开箱即用的.
我正在尝试开发一个Spring MVC应用程序,现在我遇到了一个问题.登录成功后,我将User实体添加到会话并调用http://localhost:8080/user
以获取会话用户.这里一切都好.但是,如果我像这样调用URL,http://localhost:8080/user?username=testuser
那么会话用户的用户名将更改为testuser.我该怎么办才能从会话中获取当前用户?
代码如下
实体:
@Entity
public class User {
private Long id;
private String username;
// ...Getter and Setter...
}
Run Code Online (Sandbox Code Playgroud)
控制器:
@Controller
@RequestMapping("user")
@SessionAttributes("current_user")
public class UserController {
@RequestMapping(method=RequestMethod.GET)
@ResponseBody
public User testSession(@ModelAttribute("current_user") User user) {
return user;
}
}
Run Code Online (Sandbox Code Playgroud)
回应 http://localhost:8080/user
[{"id":1,"username":"aaa111"}]
Run Code Online (Sandbox Code Playgroud)
回应http://localhost:8080/user?username=testuser
; 它应该与上面相同,但是
[{"id":1,"username":"testuser"}]
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用默认的git后端设置Spring Cloud Config Server.我已经设置了一个本地gitlab并将配置文件放入本地gitlab.但是当我启动配置服务器时,抛出以下异常,我哪里出错了?是否有任何方法可以JGitEnvironmentRepository
默认配置不验证SSL?
org.eclipse.jgit.api.errors.RefNotFoundException: Ref master can not be resolved
at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:244)
at org.springframework.cloud.config.server.JGitEnvironmentRepository.checkout(JGitEnvironmentRepository.java:208)
at org.springframework.cloud.config.server.JGitEnvironmentRepository.loadEnvironment(JGitEnvironmentRepository.java:179)
at org.springframework.cloud.config.server.JGitEnvironmentRepository.findOne(JGitEnvironmentRepository.java:155)
at org.springframework.cloud.config.server.EnvironmentController.labelled(EnvironmentController.java:55)
at org.springframework.cloud.config.server.EnvironmentController.master(EnvironmentController.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.boot.actuate.autoconfigure.EndpointWebMvcAutoConfiguration$ApplicationContextHeaderFilter.doFilterInternal(EndpointWebMvcAutoConfiguration.java:288)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at …
Run Code Online (Sandbox Code Playgroud) 我使用System.exit()
,但它总是会调用 JVM 关闭挂钩。如何以编程方式关闭 Java 进程但不调用 JVM 关闭挂钩?
java ×5
spring ×2
ant ×1
debugging ×1
gradle ×1
jcabi ×1
junit5 ×1
liquibase ×1
logging ×1
session ×1
spring-cloud ×1
spring-data ×1
spring-mvc ×1
togglz ×1