.yml文件
cassandra:
keyspaceApp:junit
solr:
keyspaceApp:xyz
Run Code Online (Sandbox Code Playgroud)
豆
@Component
@ConfigurationProperties(prefix="cassandra")
public class CassandraClientNew {
@Value("${keyspaceApp:@null}") private String keyspaceApp;
Run Code Online (Sandbox Code Playgroud)
主方法文件
@EnableAutoConfiguration
@ComponentScan
@PropertySource("application.yml")
public class CommonDataApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = new SpringApplicationBuilder(CommonDataApplication.class)
.web(false).headless(true).main(CommonDataApplication.class).run(args);
}
}
Run Code Online (Sandbox Code Playgroud)
测试用例
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = CommonDataApplication.class)
@IntegrationTest
@EnableConfigurationProperties
public class CassandraClientTest {
@Autowired
CassandraClientNew cassandraClientNew;
@Test
public void test(){
cassandraClientNew.getSession();
System.out.println(" **** done ****");
}
}
Run Code Online (Sandbox Code Playgroud)
它不是将junit设置为keyspaceApp,而是设置xyz.
看起来像prefix ="cassandra"无效
由于这是当前的一个热门话题,我无法理解某些概念.请原谅我,如果我听起来很愚蠢,但当我尝试创建不可变对象的大部分帖子时,我发现了以下几点
现在我无法理解为什么我们需要以下几点
我在这里添加我的课程和测试用例:
public final class ImmutableUser {
private final UUID id;
private final String firstName;
private final String lastName;
public ImmutableUser(UUID id, String firstName, String lastName) {
super();
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
/**
* @return the id
*/
public UUID getId() {
return id;
}
/**
* @return the firstName
*/
public String getFirstName() {
return firstName;
}
/** …Run Code Online (Sandbox Code Playgroud) 嗨我正在使用Spring Boot,我想在Bean中注入.yml文件的值.我已经编写了集成测试用例,但看起来像通过Integration测试用例它没有注入值.
问题是url的值,keyspaceApp为null
豆
@ConfigurationProperties(prefix="cassandra")
public class TestBean {
@Value("${urls}")
private String urls;
@Value("${keyspaceApp}")
private String app;
public void print() {
System.out.println(urls);
System.out.println(app);
}
public String getUrls() {
return urls;
}
public void setUrls(String urls) {
this.urls = urls;
}
}
Run Code Online (Sandbox Code Playgroud)
集成测试用例
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = TestBean.class)
@IntegrationTest
public class CassandraClientTest {
@Autowired
private TestBean bean;
@Test
public void test() {
bean.print();
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序yml文件
cassandra:
urls: lllaaa.com
keyspaceApp: customer
createDevKeyspace: true
Run Code Online (Sandbox Code Playgroud) 我试图将方法的调用/结果链接到下一个调用.我得到编译时错误方法E因为如果无法从前一次调用获得objB的引用.
如何将上次调用的结果传递给下一个链?我完全误解了这个过程吗?
Object objC = CompletableFuture.supplyAsync(() -> service.methodA(obj, width, height))
.thenApply(objA -> {
try {
return service.methodB(objA);
} catch (Exception e) {
throw new CompletionException(e);
}
})
.thenApply(objA -> service.methodC(objA))
.thenApply(objA -> {
try {
return service.methodD(objA); // this returns new objB how do I get it and pass to next chaining call
} catch (Exception e) {
throw new CompletionException(e);
}
})
.thenApply((objA, objB) -> {
return service.methodE(objA, objB); // compilation error
})
.get();
Run Code Online (Sandbox Code Playgroud) 我有datastax-cassandra 1.2.5,我在.yaml文件中有以下设置
我一直这样.我曾尝试更改存储端口一次,但它比同样的东西更有效.我无法再次重启cassandra
INFO 16:33:02,714 Completed flushing /var/lib/cassandra/data/system/local/system-local-ic-17-Data.db (241 bytes) for commitlog position ReplayPosition(segmentId=1371684781848, position=50142)
ERROR 16:33:02,793 Exception encountered during startup
java.lang.RuntimeException: java.net.BindException: Can't assign requested address
at org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:446)
at org.apache.cassandra.net.MessagingService.listen(MessagingService.java:389)
at org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:583)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:548)
at org.apache.cassandra.service.StorageService.initServer(StorageService.java:445)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:325)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:413)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:456)
Caused by: java.net.BindException: Can't assign requested address
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:344)
at sun.nio.ch.Net.bind(Net.java:336)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)
at org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:436)
... 7 more
java.lang.RuntimeException: java.net.BindException: Can't assign requested address
at org.apache.cassandra.net.MessagingService.getServerSocket(MessagingService.java:446) …Run Code Online (Sandbox Code Playgroud) 我正在阅读帖子,它说使用BufferedReader或MappedByteBuffer.我决定用291.0 MB文件自己测试,但仍然无法决定
BufferedReader reader = new BufferedReader(new FileReader("/Users/rachana/part-00000"));
String line = null;
while((line = reader.readLine())!=null) {
System.out.println(line);
}
~~~~~~ Heap utilization in MB ~~~~~~
Start Date 21:10:20
End Date 21:17:48
Time used 448 second
7.50 min
Used Memory In MB:28
Free Memory:81
Total Memory:109
Max Memory:1820
Run Code Online (Sandbox Code Playgroud)
使用MappedByteBuffer
RandomAccessFile aFile = new RandomAccessFile
("/Users/rachana/part-00000", "r");
FileChannel inChannel = aFile.getChannel();
MappedByteBuffer buffer = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, inChannel.size());
buffer.load();
for (int i = 0; i < buffer.limit(); i++)
{
System.out.print((char) buffer.get());
}
buffer.clear(); // …Run Code Online (Sandbox Code Playgroud) 我们将用户选择的表情符号存储在MySQL的文本正文中.我们的列看起来像这样
`body` text CHARACTER SET utf8 COLLATE utf8_bin,
Run Code Online (Sandbox Code Playgroud)
原始数据: <div id='mobile-question-style' style=\"font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;\">\uD83D\uDE1D\uD83D\uDE3E\uD83D\uDE3E\uD83D\uDE3A\uD83D\uDE3A\uD83D\uDE1D</div>
DB中的数据: <div id='mobile-question-style' style="font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;">????????????</div>
但是,如果从Rest API获取它,它看起来是正确的: "body":"<div id='mobile-question-style' style=\"font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;\">\uD83D\uDE1D\uD83D\uDE3E\uD83D\uDE3E\uD83D\uDE3A\uD83D\uDE3A\uD83D\uDE1D</div>",
现在当我更新问题时,使用Rest API它会丢失编码并显示"????"
更新后来自端点的数据: "body":"<div id='mobile-question-style' style=\"font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;\">????????????</div>",
更新身体时有特殊的逻辑,所以任何人都知道这里发生了什么?
java ×5
spring ×2
spring-boot ×2
cassandra ×1
emoji ×1
file-io ×1
immutability ×1
java-8 ×1
mysql ×1
performance ×1