小编Wil*_*ban的帖子

应用运行时更新Spring Boot属性的更好方法

到目前为止,我已经看到了通过更改属性文件本身,然后重新加载文件,使用@RefreshScope注释或使用Spring Cloud Config 来更新Spring Boot应用程序的方法。

我无法直接找到任何内容(例如getEnvironment().updateProperty(key, value))。

有这种方法吗?

例如,我需要更改应用程序的日志记录类型以显示SQL。我的application.properties文件包含以下行:spring.jpa.show-sql=false

但是,如果我想true通过REST调用在应用程序运行时将此设置为?

您能建议一种更简单的方法吗?和/或显示有关此特定属性的示例,您将自己如何做?

编辑:更改不需要反映在application.properties文件中。因此,当应用程序重新启动时,它将使用application.properties文件中最初设置的属性。

java rest spring properties spring-boot

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

在C中使用sem_wait时执行某些操作

我试图避免使用sem_wait,并且有类似的东西:"在等待信号量时,做一些事情".所以我发现了sem_getvalue,它应该在成功的情况下返回0.

所以我用以下方式启动信号量:

sem_init(&sem1, 0, 0);
Run Code Online (Sandbox Code Playgroud)

而不是

sem_wait(&sem1);
Run Code Online (Sandbox Code Playgroud)

我需要这样的东西:

while(sem_getvalue(&sem1, 2) < 0){
    printf("do this\n");
}
Run Code Online (Sandbox Code Playgroud)

我对sem_wait没有任何问题,一切似乎都正常运行.但是第二个,我在执行期间遇到了Segmentation fault错误.

非常感谢任何帮助,谢谢!

c posix semaphore while-loop

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

尝试在 Spring Boot 中发送电子邮件时出现 NoSuchMethodError

我正在尝试发送一封简单的电子邮件:

@Autowired
JavaMailSender sender;

public void sendEMail() throws Exception
{
    MimeMessage message = sender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message);
    helper.setTo("foo@dummy.com");
    helper.setText("How are you?");
    helper.setSubject("Hi");
    sender.send(message);
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下属性:

spring.mail.host=127.0.0.1
spring.mail.port=25
spring.mail.properties.mail.smtp.auth=false
Run Code Online (Sandbox Code Playgroud)

以及以下 pom.xml 依赖项:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.5.RELEASE</version>
    <relativePath/>
</parent>

  <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
</dependency>

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.19.4</version>
</dependency>

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.9.1</version>
</dependency>

<dependency>
    <groupId>com.github.java-json-tools</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>2.2.8</version>
</dependency>

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports</artifactId>
    <version>6.1.0</version>
    <exclusions>
        <exclusion>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
        </exclusion> …
Run Code Online (Sandbox Code Playgroud)

java email spring maven spring-boot

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

在前端存储 AWS 凭证

我试图从我的 JavaScript 前端应用程序中获取来自 S3 的图像对象。

根据文档,这些是所需的步骤:

import * as AWS from "aws-sdk";

AWS.config.update({accesKeyId, secretAccesKey, region});

let s3 = new AWS.S3();
Run Code Online (Sandbox Code Playgroud)

然后,您可以像这样获取对象:

function listObjects(bucketName, folderName) {
  return new Promise((resolve) => {
    s3.listObjects({Bucket: bucketName, Prefix: folderName}).promise()
      .then((data) => {
        resolve(data.Contents);
      })
  });
}
Run Code Online (Sandbox Code Playgroud)

一切似乎都正常工作,但让我担心的是,为了访问存储桶,我还需要在前端应用程序中保留 accessKeyId 和 secretAccessKey。

如何在不提供这些机密数据的情况下保护存储桶或访问对象?

javascript amazon-s3 amazon-web-services

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

如何在C#中获取通用列表,堆栈和映射的成员?

在Java中,您可以这样做:

要获得通用列表的成员:

public T getMember(int index){
    return list.get(index);
}
Run Code Online (Sandbox Code Playgroud)

要获取泛型堆栈的成员:

public T getMemberFromStack(int index){
     return stack.get(index); 
}
Run Code Online (Sandbox Code Playgroud)

并获得通用地图的成员:

public T getMemberFromMap(K key){
    return map.get(key);
}
Run Code Online (Sandbox Code Playgroud)

我一直在寻找

https://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/3278tedw(v=vs.110).aspx

https://msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx

但我在C#中找不到类似的方法.

这些方法应返回对象而不从列表/堆栈/映射中删除它们.

c# generics

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