小编sid*_*ate的帖子

是否可以在Stream中获取下一个元素?

我正在尝试将for循环转换为功能代码.我需要向前看一个值,并且还要看一个值.是否可以使用流?以下代码是将罗马文本转换为数值.不确定带有两个/三个参数的reduce方法是否有帮助.

int previousCharValue = 0;
int total = 0;

for (int i = 0; i < input.length(); i++) {
    char current = input.charAt(i);

    RomanNumeral romanNum = RomanNumeral.valueOf(Character.toString(current));

    if (previousCharValue > 0) { 
        total += (romanNum.getNumericValue() - previousCharValue);
        previousCharValue = 0;
    } else {
        if (i < input.length() - 1) {

            char next = input.charAt(i + 1);
            RomanNumeral nextNum = RomanNumeral.valueOf(Character.toString(next));
            if (romanNum.getNumericValue() < nextNum.getNumericValue()) {
                previousCharValue = romanNum.getNumericValue();
            }
        }
        if (previousCharValue == 0) {
            total += romanNum.getNumericValue();
        }

    } …
Run Code Online (Sandbox Code Playgroud)

java java-8

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

用Java-8 Streams替换'for'循环中的if-else

我有以下简单的代码,我试图转换为功能样式

for(String str: list){
    if(someCondition(str)){
       list2.add(doSomeThing(str));
    }
    else{
        list2.add(doSomethingElse(str));
    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以用流替换这个循环?我看到的唯一选择是使用两个不同的过滤条件迭代流两次.

java functional-programming java-8

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

在tomcat lib文件夹中的Spring jar

我对tomcat中类加载的发生方式感到困惑.如果我的问题听起来很愚蠢,请耐心等待.

我们在单个tomcat服务器上部署多个spring webapps.为了减少内存占用,我们考虑在tomcat lib文件夹中安装spring,hibernate和数据库驱动程序jar,以便所有webapp共享.

我首先将spring依赖关系标记为,provided然后将这些jar复制到tomcat lib.但是,在服务器启动时,我开始越来越多ClassNotFoundErrors,像commons-logging,commons-fileupload,jackson,所以我必须将这些罐子以及到Tomcat的lib.

但后来开始感觉很可疑.如果将来我在项目中添加另一个spring依赖项,比如spring-data-cassandra.我是否还需要移动它的依赖罐子?这可能是无止境的.另外,我可能会在运行时遇到CNF错误.

我试图按照这个链接,将spring-context和spring-web带回应用程序之战.但它没有用,在WebApplicationIntializer初始化期间在某些类上得到了ClassNotFound .我试图理解在tomcat中加载的顺序,但是不太了解.

然后我找到了一个完全不同的JDBC驱动程序加载解释,这与所有其他解释相矛盾,让我完全糊涂了.



在我阅读更多内容时,我认为将弹簧罐移动到tomcat lib并不是一种正确的方法,但仍然没有一个好的推理.然后为什么JDBC驱动程序有效?有人可以解释一下吗?每个webapp的classloader也会创建每个类的副本吗?

编辑1:我开始知道optional春季罐子中有很少的依赖项,如果在我的webapp中使用它将是必需的.所以spring-web依赖于jackson库,但对于我的应用程序是可选的.因此,我需要找出我的项目所需的所有罐子,并且春天也需要这些罐子,这些罐子需要移动到tomcat lib.

java spring tomcat classloader

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

现有webapp上的Spring启动运行状况检查

我有现有的Spring MVC Web应用程序.现在我只想使用spring-boot-starter-actuator中的健康检查功能.

我是春季启动的新手,所以不确定我是否需要将我的完整项目转换为spring boot项目以进行运行状况检查.我可以只包含依赖项并以某种方式仅启用所需的功能吗?

java spring spring-mvc spring-boot

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

RequestMapping包含斜杠和点

我必须支持以下URL格式

/service/country/city/addr1/addr2/xyz.atom /service/country/city/addr1/addr2/addr3/xyz.atom

where countrycitycan可以映射到@PathVariable但是之后路径可以是多个斜杠的动态.末端部分将具有.atom或类似.

我试过跟随,但没有一个选项似乎工作

  • 通配符

    @RequestMapping(value="/service/{country}/{city}/**")

  • 正则表达式

    @RequestMapping(value="/service/{country}/{city}/{addr:.+}")

  • UseSuffixPatternMatch


    Config类中的覆盖方法

     @Override
     public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.setUseSuffixPatternMatch(false);
     }
    
    Run Code Online (Sandbox Code Playgroud)

看起来像斜线和点的组合不适用于上述解决方案.我一直在406寻找不匹配的Accept标头,或者404

java regex spring spring-mvc

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

如何在mongodb中维护排序属性的顺序?

根据问题的答案,不保证对象的属性顺序.那么当我们将多个排序字段作为对象传递时,sort函数如何在MongoDB中完美地工作?

db.users.find({}).sort({firstName: 1, age:-1}).exec(callback);
Run Code Online (Sandbox Code Playgroud)

mongodb如何知道它首先必须按firstName排序然后按年龄排序?它是在做错误的假设吗?

javascript sorting mongoose mongodb node.js

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

JPA:覆盖自动生成的ID

我在Employee类中有以下定义

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "employee_id")
private Integer employeeId;
Run Code Online (Sandbox Code Playgroud)

现在,我想使用现有员工ID导入现有员工.即使我在保存之前设置了员工ID,也会忽略分配的ID,并存储自动递增的ID.我们如何覆盖这个?

java hibernate jpa

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

Spring控制器和端点之间的区别

Spring启动器执行器提供一些端点,如健康,指标,信息.它还允许我们编写自己的自定义端点.

我有一个要求,我需要将一些Dropwizard指标统计信息作为端点公开.最新的Spring-boot确实支持dropwizard指标,但它不符合我的要求,所以我打算拥有自己的Web端点/stats

但现在我无法确定它应该是普通的Controller还是定制的执行器Endpoint.这两个术语有什么区别?

PS:问题似乎确实是意见基础,但答案应该足够简单.

java spring spring-mvc spring-boot-actuator

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

使用函数样式合并两个数组

我正在研究如何合并两个排序的数组,并努力使用Java 8流转换解决方案的问题之一.但仍然没有成功.实际上,我没有什么用处可以在这里分享.

必须有一种方法来使用函数式编程中的索引来处理这样的循环.在不改变时间复杂度的情况下,如何在Scala,Clojure等其他语言中完成这项工作?可能那时我可以尝试用Java复制它.

编辑:代码提到问题是最有效的,我不想妥协它.

java functional-programming scala clojure java-8

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

如何为测试禁用 AWS 参数存储自动配置?

我已经spring-cloud-starter-aws-parameter-store-config按照spring 文档中的说明添加了依赖项。现在,对于单元测试,我想禁用参数存储配置。但是做不到。

我尝试在 test/application.properties 中设置以下属性

 aws.paramstore.enabled=false
Run Code Online (Sandbox Code Playgroud)

还试图排除AwsParamStoreBootstrapConfiguration.class来自AutoConfiguration但仍然没有工作。

例外

引起:org.springframework.beans.BeanInstantiationException:无法实例化[com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagement]:工厂方法'ssmClient'抛出异常;嵌套异常是 com.amazonaws.SdkClientException: Unable to find a region via the region provider chain。必须在构建器或设置环境中提供显式区域以提供区域。在 org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE] 在 org.springframework.beans.factory。 support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:582) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE] ... 83个常见框架省略导致:com.amazonaws.SdkClientException:无法通过区域提供商链找到区域。必须在构建器或设置环境中提供显式区域以提供区域。在 com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:371) ~[aws-java-sdk-core-1.11.336.jar:na] 在 com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties( AwsClientBuilder.java:337) ~[aws-java-sdk-core-1.11.336.jar:na] 在 com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46) ~[aws-java-sdk -core-1.11.336.jar:na] 在 com.amazonaws.services.simplesystemsmanagement.AWSSimpleSystemsManagementClientBuilder.defaultClient(AWSSimpleSystemsManagementClientBuilder.java:44) ~[aws-java-sdk-ssm-1.11.336.jar:na] 在 org .springframework.cloud.aws.autoconfigure.paramstore.AwsParamStoreBootstrapConfiguration。

java spring unit-testing spring-boot spring-cloud-aws

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