小编Dor*_*old的帖子

Google colab上“ Power Level”的含义

当我在Goole Colab上打开新笔记本时,我会在顶部看到“ POWER LEVEL”指示灯,并带有电池符号。我可以单击它,然后选择三种不同的功率级别:低,中和高。

带有Power Level的Google Colab快照

我不记得曾经在Google Colab上看到过这种情况。我相信这是一个新的未记录的功能。

有人知道改变功率水平有什么影响吗?

google-colaboratory

31
推荐指数
1
解决办法
8653
查看次数

如何在spring-webflux中获取当前请求的上下文

在经典的spring-mvc中,可以在a上设置请求范围属性RequestContextHolder.在此基础上,我们可以解析传入的请求HandlerInterceptorAdapter,设置请求参数,例如当前登录的用户,唯一的请求ID(用于日志关联)等等.在请求的生命周期内,可以从任何服务(不仅是控制器)静态检索这些请求属性.

我试图通过spring-webflux实现类似的功能.

我可以使用a WebFilter拦截所有传入的请求,获取当前ServerWebExchange和设置属性.但是我没有看到任何方法来获取ServerWebExchange除控制器方法之外的其他任何地方的当前请求.

我正在寻找比传递ServerWebExchange(或ServerHttpRequest)所有更好的解决方案.

看起来这很难在webflux中实现,因为我们不能依赖于在ThreadLocal上保存与特定请求相关联的变量(因为非阻塞架构,单个线程可以在飞行中的请求之间切换).
不过,这是一个重要的要求.也许有不同的方法?

spring-webflux

18
推荐指数
1
解决办法
5642
查看次数

log4j2 - Syslog appender和PatternLayout

我需要将事件记录到syslog中.我使用lo4j2和syslog appender.我的appenders阻止log4j2.xml看起来像这样:

<appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <Syslog name="syslog" host="localhost" port="514" protocol="UDP" charset="ISO-8859-1">
        </Syslog>
        <RollingFile name="AppLog" fileName="/var/log/app.log"
                     filePattern="/var/log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
            </Policies>
        </RollingFile>          
    </appenders>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我有一个Console appender和RollingFile appender以及一个特定的PatternLayout.我想为Syslog appender使用相同的PatternLayout.但是,syslog中的日志消息似乎总是使用预定义的布局.我试着做以下事情:

<Syslog name="syslog" host="localhost" port="514" protocol="UDP" charset="ISO-8859-1">
    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Syslog>
Run Code Online (Sandbox Code Playgroud)

但这没有任何影响.系统日志消息仍然具有相同的预定义格式.

如何确定进入syslog的日志消息的格式?

java log4j syslog log4j2

14
推荐指数
2
解决办法
2万
查看次数

IntelliJ + groovy DSL:如何排除文件被groovy插件编译?

我正在开发一个Java Web项目,该项目使用Liquibase groovy DSL来管理数据库更改.为了本主题,它可以是使用*.groovy文件作为源的任何其他第三方库.该项目是用gradle建造的.在我的一个模块(dao-base)下的src/main/resources文件夹我有groovy文件(changelog01.groovy, master_changelog.groovy等).这些文件应该在运行时由liquibase jar加载.

现在,当我尝试在IntelliJ中创建项目时,它会给出以下错误消息:

Groovyc:无法编译Groovy文件:没有为模块'dao-base'定义Groovy库.

我知道groovy插件检测*.groovy文件,尝试编译它们并且不出所料地失败.这些是groovy DSL文件,只能由第三方liquibase解析器加载,我不需要IntelliJ的groovy插件来尝试编译它们.

我设法提出了两个部分解决方案:1.禁用intellij中的groovy插件.这个解决方案的问题是gradle插件依赖于groovy插件,因此在禁用groovy插件时会自动禁用.我需要启用gradle插件.2.排除src/main/resources项目设置中的文件夹 - >模块 - > dao-base(我的模块) - > sources选项卡.这个解决方案的问题是,当我构建项目并部署到tomcat时,资源文件夹中的文件丢失,因为运行时需要文件中的文件,所以当战争加载时我得到文件未找到异常.

我希望有人能为这个问题找到更好的解决方案.

java groovy intellij-idea liquibase groovydsl

8
推荐指数
1
解决办法
6221
查看次数

挂钩进入JDBC事务

我有一个Spring Boot webapp连接到Postgres 9.6数据库.
我使用Spring JdbcTemplate来执行SQL语句.我的数据库中的每个表都有INSERT,CREATE和DELETE语句的触发器.这些触发器将受影响的行复制到历史记录表中.

我希望触发器还保存进行更改的用户的应用程序用户ID.

根据/sf/answers/922107511/,我可以通过让应用程序在每个事务开始时将当前用户id插入临时表并从临时表中读取触发器来实现我的目标.
在其他几个地方提到的类似方法是执行: SET LOCAL application_name = "my_application_user",然后读取application_name触发器内部.同样,这必须在每笔交易开始时完成.

我正在寻找方法,它与业务代码正交(我不希望每个DAO显式设置用户ID),挂钩到每个事务的开始,以便在之前的任何其他语句之前运行特定的SQL语句相同的交易.

我需要这个用于隐式事务(单个调用JdbcTemplate)和使用Spring的@Transactional注释以声明方式划分的事务.

java postgresql spring jdbc spring-jdbc

7
推荐指数
1
解决办法
733
查看次数

如何在不覆盖 Spring Boot 使用的对象的情况下定义自定义 ObjectMapper bean

我有一个包含多个@RestController类的 Spring Boot Web 应用程序。我喜欢我的 REST 控制器返回的默认 json 格式。

为了在我的 DAO bean(执行 json 序列化和反序列化)中使用,我创建了一个自定义ObjectMapper

@Configuration
public class Config{

  @Bean
  public ObjectMapper getCustomObjectMapper() {
    final ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    objectMapper.setPropertyNamingStrategy(new PropertyNamingStrategy.SnakeCaseStrategy());
    return objectMapper;
  }
}
Run Code Online (Sandbox Code Playgroud)

在我的每个 DAO 类中,我都会自动装配我的自定义ObjectMapper

@Repository
@Transactional
public class MyDaoImpl implements MyDao {

@Autowired
ObjectMapper objectMapper

//Dao implementation...

}
Run Code Online (Sandbox Code Playgroud)

这一切正常。问题是我的自定义ObjectMapper被 Spring 自动获取并用于序列化 REST 响应。
这是不可取的。对于 REST 控制器,我想保留ObjectMapperSpring 默认创建的。

我如何告诉 Spring Boot检测也不将我的自定义 …

java jackson spring-boot

7
推荐指数
2
解决办法
5004
查看次数

如何让 IntelliJ 将 Gradle 源与 build.gradle 相关联?

在为我的 Java 项目编写 Gradle 脚本时,特别是在编写build.gradle文件时,IntelliJ 无法识别 Gradle API。

例如,Gradle 方法调用,如applydependencies configure在它们下面出现一条黑线,并且无法导航到方法声明,没有自动完成等。

我设法通过添加compile gradleApi()到构建dependencies块来解决这个问题。但是,我不想在我的代码中有这种显式依赖。

我尝试编辑 IntelliJ 的项目结构并向我的模块添加对 Gradle 库的依赖(尝试gradle-coregradle-all),但这似乎没有效果。

有没有办法让 IntelliJ 将所有build.gradle文件与 Gadle 源相关联?

intellij-idea gradle

6
推荐指数
2
解决办法
6955
查看次数

gradle install和gradle publishToMavenLocal有什么区别?

在gradle中,该install任务由maven插件引入.

publishToMavenLocal任务由maven-publish插件引入.

这两个任务的文档说明他们将模块/工件安装/发布到本地maven缓存(.m2目录).

如果我需要将本地项目发布到我的本地maven缓存,那么另一个本地项目可以依赖它,我应该使用哪两个任务?

gradle

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

如何将 SciPy 稀疏矩阵转换为字典

我正在寻找一种将稀疏矩阵 ( scipy.sparse.csr.csr_matrix) 转换为 Python 字典的有效方法。

据我了解,稀疏矩阵在内部以类似于字典的形式保存数据,所以看起来这样的转换应该是微不足道的和快速的。

但是,我找不到任何可以做到这一点的方法。

python dictionary scipy sparse-matrix

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

Gradle - 什么是"运行时"依赖配置用于?

你能帮我理解一下使用runtime依赖配置的典型用例(由Java插件提供)吗?

在Gradle用户指南中,表23.5.Java插件 - 依赖配置,我可以看到任何任务都没有使用运行时配置 - 而不是例如任务compile使用的配置compileJava.

runtime依赖有什么用呢?

java gradle

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

Spring AOP - 如何使父上下文中定义的方面在子上下文中起作用?

在我的web.xml文件中,我有:

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)

contextConfigLocation类路径:shared-context.xml

<!--  Main general mapping, i.e. context for the UI & version queries -->
<servlet>
    <servlet-name>mainDispacherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>classpath:web-application-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>mainDispacherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<!-- Processes application requests for version 1 -->
<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>classpath:version-api-contexts/application-context[v1.0].xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/api/v1.0/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

在父上下文中shared-context.xml,我有:

 <aop:aspectj-autoproxy/>

 <context:component-scan base-package="com.company.cse.support.audit"/>
Run Code Online (Sandbox Code Playgroud)

该包com.company.cse.support.audit包含一个标有@Component和@Aspect的类.此方面将消息记录到我的审核日志中.

当我在子上下文中定义的bean上调用一个方法时version-api-contexts/application-context[v1.0].xml,bean不会被spring AOP代理,并且不会调用该方面.如果我将方面定义行移动<context:component-scan base-package="com.company.cse.support.audit"/> 到子上下文XML,则方面可以正常工作. …

java spring aspectj spring-aop

2
推荐指数
1
解决办法
1710
查看次数