在Log4j最新的API中,我们有Lambda支持,可以轻松管理Debug选项.
例:
logger.debug("This {} and {} with {} ",
() -> this, () -> that, () -> compute());
Run Code Online (Sandbox Code Playgroud)
但是对于slf4j/logback,有任何选项可以启用lambda,如上所述.那么请让我知道语法.
根据我的要求,我必须在一段时间后执行一些特定的代码.为了做到这一点,我选择了ScheduledExecutorService.scheduleWithFixedDelay(runnable, 0, 5, TimeUnit.SECONDS)
它,它对我来说很好.但根据我的另一个要求,提到的时间fixedDelay
应该在运行时可配置.手段,当前总延迟为5秒,但后者如果用户需要则可以将时间更改为60秒,并且在运行时fixedDelay
将在60秒后运行.任何帮助都会很明显.
请看代码:
static int i = 0;
static ScheduledExecutorService executor;
static Runnable runnable;
static ScheduledFuture<?> future;
public static void main(String args[]) {
executor = Executors
.newScheduledThreadPool(1);
runnable = new Runnable() {
@Override
public void run() {
System.out.println("Inside runnable" + i++);
changeDelay();
}
};
future =
executor.scheduleWithFixedDelay(runnable, 0, 5, TimeUnit.SECONDS);
}
public static void changeDelay() {
future.cancel(false);
future = executor.scheduleWithFixedDelay(runnable, 0, 10, TimeUnit.SECONDS);
}
Run Code Online (Sandbox Code Playgroud)
这里我使用changeDelay方法来改变延迟时间.但它不起作用.
对于每个请求,我发现有4个查询被激活以验证用户和令牌.其中一个是根据用户ID获取用户(从用户中选择*).这些查询由Passport/Laravel触发但我想要的是修改此查询以添加一个状态字段检查以检查在令牌有效期内是否有任何用户变为无效.如果我们只检查id,那么任何用户是否变为非活动状态(通过更改状态,我们也无法阻止用户,因为删除用户的令牌对我来说不是一个好的解决方案).
查询在Passport Laravel的每个请求中触发:
select * from oauth_access_tokens where id = ?
select * from user where id = ? limit 1 ["2"]
select * from oauth_access_tokens where id = ?
select * from oauth_clients where id = ?
Run Code Online (Sandbox Code Playgroud)
所以,任何人都可以告诉我如何在令牌验证时更改护照中的'select*from user where id'查询.
要使用JAXB
我解析XML,我已经生成了所需的POJO,并且能够解析XML。但是,只要我的xml包含'&' '<>'
迹象,它就会失败。按照规则,这需要更改为,'&'
但是生成XML的3PP并不遵循该规则。现在,我该如何解析带有'& <>'
标志的xml 。
注意-对于编组,我发现了许多答案,但无法进行编组。
环境-Java 8
XML范例:
<Customer Info> This is & Customer Info <Customer Info>
Run Code Online (Sandbox Code Playgroud)
任何帮助都会有所帮助
在许多关于Groovy Traits的博客中,它提到它将解决钻石问题.但这个概念对我来说并不清楚,特征将如何解决钻石问题.
任何人都可以解释一下.
我遇到了使用Java连接到Azure MySQL数据库的问题。尽管每当我使用MySQL工作台连接同一数据库时,连接都会按预期工作。
为了连接同样的东西,我尝试使用下面提到的两个url字符串的代码。
Class.forName("com.mysql.jdbc.Driver");
// String url = "jdbc:mysql://***-mysqldbserver.mysql.database.azure.com:3306/medilegaldb?autoReconnect=true";
String url ="jdbc:mysql://***-mysqldbserver.mysql.database.azure.com:3306/medilegaldb?useSSL=true&requireSSL=false";
Connection con = DriverManager.getConnection(url, "user", "pass");
Run Code Online (Sandbox Code Playgroud)
需要帮助来确定问题。
我浏览了Laravel文档,发现每个请求都遵循中间层->控制器层->资源层流。但是对于我的项目,我需要编写大量的业务处理逻辑。因此,我正在寻找一个服务层选项,其中将从Controller传递执行控制,然后服务层将执行处理逻辑以及数据库提取。但是我在工匠中没有发现与服务层相关的任何内容。
那么,您能建议我如何在我的项目中实现服务层吗?