Docker 似乎允许通过 /etc/docker/daemon.json 或运行容器时的选项来指定任何选择的日志驱动程序。此外,它也允许指定驱动程序选项,但是否可以提及日志本身存储的位置。或者至少我可以知道 docker 保存日志的位置,即使该位置不可自定义。
参考:例如考虑默认驱动程序 - JSON 文件日志记录驱动程序
需要考虑的环境: Ubuntu/CentOS/Windows 等...但正在寻找通用解决方案。
当使用 spring-data-jpa 和 hibernate 作为 jpa 提供者时,对象/实体生命周期与直接使用 hibernate 或由 hibernate 定义(或者可能是 jpa 规范本身)时相同。
Hibernate 将这些生命周期定义为实体 - Transient, Persistent, Detached, Removed
。使用 spring-data-jpa 时这些相同的生命周期也适用吗?如果是这样,下面 Hibernate 提供的方法如何与 spring jpa crud 存储库的方法进行映射。
//below methods in hibernate move an entity to persistent state
save(e),
persist(e);
update(e);
saveOrUpdate(e);
lock(e);
merge(e);
Run Code Online (Sandbox Code Playgroud)
和
//below methods in hibernate move an entity to detached state
detach(e);
evict(e);
Run Code Online (Sandbox Code Playgroud) 我正在使用自动装配 (@Autowired) 在 JUnit 测试类中注入依赖项,但面临 NullPointerException。我想知道 JUnit 测试类中是否可以进行自动装配。否则应该如何将bean注入到测试类中。我的代码如下 -
主类/客户端- 自动装配按预期工作。
package com.example.demo;
import javax.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import com.example.demo.services.IMessage;
import com.example.demo.services.SayWelcomeService;
@SpringBootApplication
@ComponentScan("com.example.demo.services")
public class AutowireWithMultipleImplementationsApplication {
@Autowired
IMessage sayHelloService;
@Autowired
SayWelcomeService sayWelcome;
@Autowired
IMessage masterService;
public static void main(String[] args) {
SpringApplication.run(AutowireWithMultipleImplementationsApplication.class, args);
}
@PostConstruct
public void init() {
String message;
message=masterService.message("George");
System.out.println("message: \n" + message);
message=sayWelcome.message("george");
System.out.println("message: " + message);
}
}
Run Code Online (Sandbox Code Playgroud)
服务接口和实现类
接口IMessage
package com.example.demo.services;
public interface IMessage { …
Run Code Online (Sandbox Code Playgroud) junit spring dependency-injection inversion-of-control autowired
以下是show-rev的git输出
$ git name-rev --all
2651919f941c11581c794b40aadb2028c4f52ab4 joincolumn_issue
2617f2a1410ce0ec8ea268bbb073008b73490e78 master~2
292def505dd3cdbfd9ac974396775683b5f4c288 ls
0ec9116840a3f21c0b800617c29b7ddab5fda928 joincolumn_issue~2
ee9bb706c8fcc329fac4acf69ad6b684f1069170 master~1
d56a6751771b1f62d9ceb0bcce9a2391c004ee44 master^2
3d80a12ed375c6a9572cde39b5be0722c8cb6439 joincolumn_issue~1
df1834dbe560c2c95c8abaeec494eb1767b96a1e master
Run Code Online (Sandbox Code Playgroud)
如您所见,带有master^2
和的master~2
行,
因此,想知道这两者之间有什么区别,并且输出也不按时间顺序排列。
进一步的git图显示如下
$ git log --all --oneline --graph
* 2651919 (origin/joincolumn_issue, joincolumn_issue) changing to @JoinColumn(name="country_nm")
* 3d80a12 hibernate ignoring joinColumn value
* 0ec9116 changing name in joinColumn is breaking
| * 292def5 (origin/mappedBy, mappedBy, ls) OneToMany using mappedBy
|/
* df1834d (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/samshers/graphql-hibernate
|\
| * d56a675 …
Run Code Online (Sandbox Code Playgroud) 在 Spring 中,有一种方法可以在构造函数调用之前将 application.properties 中定义的属性连接到用 @Value 注释的相应字段。
请参阅下面的代码中我的评论。我希望该字段prop1
(及其值)可供 constructor
. 是否可以。同样,我希望该字段prop1
(及其值)可供该方法使用getInstanceProp()
。是否可以??
package com.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class WirableComponent {
@Value("${prop1}")
String prop1;
String instanceProp = getInstanceProp(); //null - I want prop1 value to be injected before making this method call so i can use it in the method.
public WirableComponent() {
System.err.println("no-args WirableComponent Constructor invoked");
System.err.println("value prop1: " + prop1); //null - I want prop1 value to be injected before …
Run Code Online (Sandbox Code Playgroud) .*
为什么在字符串上使用正则表达式时会得到两个匹配项abcd 1234 abcd
?请参阅https://regex101.com/r/rV8jfz/1。
从regex101给出的解释中,我可以看到第二个匹配发生在位置14-14,并且匹配的值为null。但为什么还要进行第二场比赛呢?有什么办法可以避免第二场比赛吗?
我理解.*
意味着任何字符的零个或多个,所以它试图找到零出现的次数。但我不明白为什么需要这个空匹配。
问题是,当在任何语言(例如Java)中使用时,当我这样做时while(matcher.find()) { ... }
,这会循环两次,而我希望它只循环一次。
我知道这不可能是现实世界的匹配情况,但为了理解和探索正则表达式,我认为这是一个很好的研究案例。
编辑 - 遵循@terdon 回复。我确实喜欢在 regex101 中保留 /g 选项,我知道这一点。我想知道总共可能的比赛。
https://regex101.com/r/EvOoAr/1 ->abcd
针对字符串的模式abcd 1234 abcd
给出了两个匹配项。而且我不想知道这些信息。
我发现的问题是,当用 java -
Ref - https://onecompiler.com/java/3xnax494k这样的语言处理这个问题时
String str = "abcd 1234 abcd";
Pattern p = Pattern.compile(".*");
Matcher matcher = p.matcher(str);
int matchCount=0;
while(matcher.find()) {
matchCount++;
System.out.println("match number: " + matchCount);
System.out.println("matcher.groupCount(): " + matcher.groupCount());
System.out.println("matcher.group(): " + matcher.group());
}
Run Code Online (Sandbox Code Playgroud)
输出是 -
match number: 1
matcher.groupCount(): …
Run Code Online (Sandbox Code Playgroud) 我需要在HDFS上存储大约10TB的大文件.我需要了解的是HDFS将如何存储此文件.比如,群集的复制因子是3,我有一个10节点群集,每个节点上有超过10 TB的磁盘空间,即总群集容量超过100TB.
现在,HDFS随机选择三个节点并将文件存储在这三个节点上.那么这就像听起来一样简单.请确认?
或者HDFS将文件分割 - 比如说每个10T分割1TB,然后将每个分割存储在随机选择的3个节点上.分裂是可能的,如果是,则是启用它的配置方面.如果HDFS必须拆分二进制文件或文本文件 - 它是如何拆分的.只需按字节.
spring security 如何在请求之间维护身份验证信息?
它使用任何类似于 jSessionId 的东西还是使用完全不同的机制。
此外,我看到AbstractSecurityInterceptor(我的意思是,它的任何实现)负责拦截传入的请求并验证请求是否已被授权使用Authentication.isAuthenticated()
,然后根据条件验证请求或将身份验证请求发送到 AuthenticationManager执行。那么,换句话说,AbstractSecurityInterceptor 如何区分第一个请求和后续请求。
spring spring-security jsessionid spring-boot spring-session
有人可以解释什么是 openshift imagestream以及它与常规 docker 镜像有何不同。
我已经阅读了这个(了解容器、图像和图像流)文档,但它没有解释太多有关图像流的信息。
我知道docker镜像是创建容器的蓝图。只是想知道图像流是什么?
在使用 构建我的 Spring Boot 应用程序时mvn clean package
,正在构建的最终工件 myapp.jar 的 jar 名称中没有包含版本号。
我应该做什么改变才能使工件版本号成为 jar 的一部分。
pom.xml 的相关部分如下 -
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycomp</groupId>
<artifactId>myapp</artifactId>
<version>2.6.0</version>
<name>myapp</name>
<description>
<![CDATA[]]>
</description>
<packaging>jar</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<springboot.version>2.5.6</springboot.version>
</properties>
<dependencies>
<!-- Spring boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.12</version>
</dependency>
...
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>3.6.3</version>
</dependency>
</dependencies>
<build>
<finalName>gitlab-finder</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version> …
Run Code Online (Sandbox Code Playgroud) sqoop导入/导出是否创建了java类?如果它这样做,我在哪里可以看到这些生成的类.这些类文件的位置是什么?
spring-boot ×4
java ×3
spring ×3
autowired ×2
docker ×2
hadoop ×2
bigdata ×1
cglib ×1
git ×1
git-log ×1
hdfs ×1
hibernate ×1
imagestream ×1
jar ×1
jpa ×1
jsessionid ×1
junit ×1
kubernetes ×1
logging ×1
mapreduce ×1
maven ×1
openshift ×1
regex ×1
sqoop ×1
ubuntu-18.04 ×1