小编Dan*_*iel的帖子

Hibernate 6.x 中的 PostgreSQL10Dialect 发生了什么?

在迁移到 Spring boot 3 之前,我们在应用程序中使用 PostgreSQL10Dialect。当迁移到 Spring boot 3 时,我意识到 Hibernate 6 不再包含 PostgreSQL10Dialect。我在 Hibernate 6 迁移指南中找不到任何提及这一点的内容。

我们应该切换到什么?PostgreSQL95 方言 ?

hibernate spring-boot

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

在测试中包括静态资源,如图像,css,js等

我最近开始使用JMeter为我的Web应用程序创建负载测试.我非常喜欢这个工具,在观看了一些视频后,开始创建测试非常容易.

但有一点我不清楚.

在JMeter主页上阅读,有一个"最佳实践"部分.除其他外,它说:

最重要的是过滤掉您不感兴趣的所有请求.例如,记录图像请求没有意义(可以指示JMeter下载页面上的所有图像 - 请参阅HTTP请求).这些只会使您的测试计划变得混乱.

我在其他页面上也看过这个,并说你不应该在测试中包含对图像或任何其他静态资源的请求.然而,我仍然无法找到一个单独的页面,为什么你不包含静态资源给出了很好的解释.

当然,JMeter不是浏览器,但对静态资源的请求无疑会影响应用程序的性能?有人可以给我一个很好的解释:-)

testing performance jmeter

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

IllegalArgumentException:扩展JdbcUserDetailsManager时需要'dataSource'或'jdbcTemplate'

我是Spring的新手,我正在努力尝试扩展JdbcUserDetailsManager时抛出异常,因为除了提供的功能之外我还需要其他功能.类签名看起来像这样,带有默认构造函数.

@Repository
public class PrimeUserDetailsManager extends JdbcUserDetailsManager implements CustomUserDetailsManager {

    public static String CUSTOM_USERS_BY_USERNAME_QUERY = "select username,password,enabled from users where username like ?%";  
    public static String FIND_ALL_USERS_QUERY = "select username,password,enabled from users";

    @Override
    public List<UserDetails> loadUsersByUsername(String username) {
        return super.loadUsersByUsername(username);
    }

    @Override
    public List<UserDetails> findAllUsers() {
        return getJdbcTemplate().query(FIND_ALL_USERS_QUERY, new RowMapper<UserDetails>() {
            public UserDetails mapRow(ResultSet rs, int rowNum) throws SQLException {
                String username = rs.getString(1);
                String password = rs.getString(2);
                boolean enabled = rs.getBoolean(3);
                return new User(username, password, enabled, true, true, true, …
Run Code Online (Sandbox Code Playgroud)

java spring datasource spring-security

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

<select>标签的渐变样式?

我正在尝试创建一个表单,其中输入字段的背景使用渐变背景进行样式设置.它成功用于所有<input>标签,但不适用于<select>标签.可以这样做吗?难道我做错了什么?

我正在使用的CSS:

form#contact input[type="text"], input[type="url"], 
input[type="email"], input[type="tel"], textarea, select {
    margin: 3px 0 0 0;
    padding: 6px; 
    width: 260px; 
    font-family: arial, sans-serif; 
    font-size: 12px; 
    border: 1px solid #ccc;
    background: -webkit-gradient(linear, left top, left 15, from(#FFFFFF), color-stop(4%, #f4f4f4), to(#FFFFFF));
    background: -moz-linear-gradient(top, #FFFFFF, #f4f4f4 1px, #FFFFFF 15px);
}
Run Code Online (Sandbox Code Playgroud)

见下图.

见下图

css

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

使用新的 Spring 6 HTTP 接口时“阻塞读取超时”

我们最近开始测试Spring 6 附带的新 HTTP 接口。

我们这样定义一个客户端:

    HttpClient client = (HttpClient)((HttpClient)HttpClient.create().option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 5000)).doOnConnected((conn) -> {
        conn.addHandlerLast(new ReadTimeoutHandler(10000L, TimeUnit.MILLISECONDS));
    });
    WebClient webClient = WebClient.builder().clientConnector(new ReactorClientHttpConnector(client)).baseUrl(locationUrl.toExternalForm()).build();
    HttpServiceProxyFactory factory = HttpServiceProxyFactory.builder(WebClientAdapter.forClient(webClient)).build();
Run Code Online (Sandbox Code Playgroud)

界面可以看起来像这样:

@GetExchange("/availability")
    AvailabilityResponse getAvailability(@RequestParam("products") List<String> itemIds);
Run Code Online (Sandbox Code Playgroud)

在使用客户端时,我们偶尔会遇到如下异常。我们最初认为这与我们定义为 5 秒的连接超时有关,但这似乎与反应器阻塞有关,而不是与实际的 HTTP 调用有关。

在搜索类似问题时,我发现的所有内容似乎都与 WebClient 的单元测试有关,具有诸如设置之类的解决方案@AutoConfigureWebTestClient(timeout = "30000"),因此这对我们没有帮助。我们如何增加阻塞获取超时以匹配我们的 ReadTimeoutHandler 10 秒?

java.lang.IllegalStateException: Timeout on blocking read for 5000000000 NANOSECONDS
    at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:123)
    at reactor.core.publisher.Mono.block(Mono.java:1734)
    at org.springframework.web.service.invoker.HttpServiceMethod$ResponseFunction.execute(HttpServiceMethod.java:296)
    at org.springframework.web.service.invoker.HttpServiceMethod.invoke(HttpServiceMethod.java:105)
    at org.springframework.web.service.invoker.HttpServiceProxyFactory$HttpServiceMethodInterceptor.invoke(HttpServiceProxyFactory.java:271)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:218)
    at jdk.proxy3/jdk.proxy3.$Proxy135.searchPharmacies(Unknown Source)
    at <redacted>
    at jdk.internal.reflect.GeneratedMethodAccessor128.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot spring-webclient

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

在没有HttpServletRequest的情况下获取主机和contextroot

我正在创建一个用于处理邮件发送的类.对于其中一些邮件,我需要构建链接(帐户激活,重置密码,确认等).

我不想硬编码链接的主机,因为dev,test和prod的主机不同.所以我需要在我的邮件类中以编程方式获取主机名和应用程序上下文.

我们在这个项目中使用Spring MVC.

我用一个例子说明我想要的东西.

在我们的JSP中,我们有这样的代码片段:

<script src="<%=request.getContextPath()%>/js/jquery-1.7.js" type="text/javascript">
Run Code Online (Sandbox Code Playgroud)

在此上下文中,request.getContextPath()将解析为 http:// localhost:8080/applicationName

这就是我想要的邮件课程.

我试图在我的班级中实现ServletContextAware,以为我能够使用servletContext.getContextPath()类似的结果.但是这个语句只解析为/ applicationName

所以我的问题是:如何在我的邮件类中获得完整的主机和上下文(http:// localhost:8080/applicationName)?我可以使用除ServletContextAware之外的其他接口吗?请帮忙 :-)

关心丹尼尔

java servlets spring-mvc contextpath

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

CloudFormation 堆栈给出“API: s3:GetObject Access Denied”

与 S3 存储桶结合使用时,我在部署 CF-stack 时遇到问题。S3 存储桶包含 API Gateway 需要访问的 swagger 定义。

我的 S3 存储桶有一个包含 IP 过滤器的存储桶策略,如下所示:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "IpFilter",
            "Effect": "Deny",
            "NotPrincipal": {
                "Service": [
                    "lambda.amazonaws.com",
                    "apigateway.amazonaws.com"
                ]
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::my-code-dev/*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        "1.2.3.4/32",
                        "5.6.7.8/32"
                    ]
                }
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

目的是拒绝任何不是来自指定 IP 地址或指定服务的人访问此 S3 存储桶。

在部署我的堆栈时,我在部署 AWS::ApiGateway::RestApi 资源时遇到错误,状态原因为“API: s3:GetObject Access Denied”。

这显然与存储桶策略有关,因为如果我删除该策略,问题就会消失。关于政策中缺少什么的任何想法?

amazon-web-services aws-cloudformation

5
推荐指数
0
解决办法
320
查看次数

应用程序负载平衡器和Lambda的用例是什么?

上周在ReInvent上,发布的公告之一是ALB现在可以调用Lambas来服务HTTPS请求。由于我们已经可以将API Gateway连接到Lambdas,因此我对这个新功能解决了什么问题感到困惑。

这是annoncement - https://aws.amazon.com/about-aws/whats-new/2018/11/alb-can-now-invoke-lambda-functions-to-serve-https-requests/

有人可以举一些例子吗?

amazon-web-services aws-lambda

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

如何将@ConfigurationProperties自动装配到@Configuration?

我有一个像这样定义的属性类:

@Validated
@ConfigurationProperties(prefix = "plugin.httpclient")
public class HttpClientProperties {
   ...
}
Run Code Online (Sandbox Code Playgroud)

和这样的配置类:

@Configuration
@EnableScheduling
public class HttpClientConfiguration {

    private final HttpClientProperties httpClientProperties;

    @Autowired
    public HttpClientConfiguration(HttpClientProperties httpClientProperties) {
        this.httpClientProperties = httpClientProperties;
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

在开始我的春季启动应用程序时,我得到了

Parameter 0 of constructor in x.y.z.config.HttpClientConfiguration required a bean of type 'x.y.z.config.HttpClientProperties' that could not be found.
Run Code Online (Sandbox Code Playgroud)

这不是一个有效的用例,还是我必须如何声明依赖关系?

configuration spring autowired spring-boot

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