小编plz*_*lme的帖子

@ConfigurationProperties前缀不起作用

.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"无效

java spring spring-boot

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

如何在java中使对象不可变

由于这是当前的一个热门话题,我无法理解某些概念.请原谅我,如果我听起来很愚蠢,但当我尝试创建不可变对象的大部分帖子时,我发现了以下几点

  • 让课堂决赛 - 有意义
  • 不要让mutators(setter)用于属性 - 这是有道理的
  • 将属性设为私有 - 有意义

现在我无法理解为什么我们需要以下几点

  • 使构造函数私有,并提供与构造函数或工厂方法相同属性的createInstance方法?它有什么用?
  • 使属性最终 - 帖子的帖子无法解释这一点和我阅读的一些地方,以避免意外修改.如果没有变异器并且课程是最终的,你怎么能意外修改?如何使属性最终得到帮助?
  • 我可以使用构建器模式而不是工厂模式吗?

我在这里添加我的课程和测试用例:

    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)

java immutability

14
推荐指数
3
解决办法
3164
查看次数

Spring启动,通过集成测试用例读取yml属性

嗨我正在使用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)

spring spring-boot

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

CompletableFuture链接结果

我试图将方法的调用/结果链接到下一个调用.我得到编译时错误方法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)

java java-8 completable-future

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

Cassandra:无法分配请求的地址

我有datastax-cassandra 1.2.5,我在.yaml文件中有以下设置

  • storage_port:7000
  • ssl_storage_port:7001
  • listen_address:localhost
  • rpc_port:9160

我一直这样.我曾尝试更改存储端口一次,但它比同样的东西更有效.我无法再次重启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)

cassandra

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

在java中以MB读取大文件的最佳方法

我正在阅读帖子,它说使用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)

java performance file-io memory-mapped-files

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

在MySQL中存储Android Emoji

我们将用户选择的表情符号存储在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 mysql emoji

0
推荐指数
1
解决办法
3702
查看次数