我有两个Spring配置文件:dev和test.我想在服务器环境中设置活动配置文件,我不想在我的代码中设置它,这样无论我在何处部署应用程序,都会根据服务器中的配置文件加载配置文件.我怎样才能做到这一点?
根据下面的代码,hashmap初始dafault容量是16,LF是0.75,所以当我输入第13个元素然后重新发送应该发生并且因为我提供了一个常量哈希码,它在内部维护一个链表以维持一个插入顺序.因此,直到第10个元素它按预期工作,但是当我输入第11个元素时,它会改变顺序.任何人都可以帮助我理解为什么它只在第11个元素插入时发生.
class A{
int a;
A(int a){
this.a = a;
}
@Override
public int hashCode() {
return 7;
}
@Override
public String toString() {
return "" + a + "";
}
}
class Base {
public static void main(String[] args) {
Map<Object, Integer> m = new HashMap<Object, Integer>();
m.put(new A(1), 1);
m.put(new A(2), 1);
m.put(new A(3), 1);
m.put(new A(4), 1);
m.put(new A(5), 1);
m.put(new A(6), 1);
m.put(new A(7), 1);
m.put(new A(8), 1);
m.put(new A(9), 1);
m.put(new A(10), 1);
//m.put(new A(11), …Run Code Online (Sandbox Code Playgroud) 我有一个Foo对象流.
class Foo {
private int variableCount;
public Foo(int vars) {
this.variableCount = vars;
}
public Integer getVariableCount() {
return variableCount;
}
}
Run Code Online (Sandbox Code Playgroud)
我想要一个列表,Foo它们都具有最低的variableCount.
例如
new Foo(3), new Foo(3), new Foo(2), new Foo(1), new Foo(1)
Run Code Online (Sandbox Code Playgroud)
我只希望流返回最后2 Foo秒
我试过用分组进行收集
.collect(Collectors.groupingBy((Foo foo) -> {
return foo.getVariableCount();
})
Run Code Online (Sandbox Code Playgroud)
这会返回一个Map<Integer, List<Foo>>,我不知道如何将其转换为我想要的.
提前致谢
我不确定最新版本的eclipse即Oxygen是否支持java 10.我从我的mac机器上的首选项配置了Java 10的JRE.
另外,我尝试将maven编译器插件添加到我的pom.xml中: -
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>10</source>
<target>10</target>
<compilerVersion>10</compilerVersion>
<fork>true</fork>
<executable>/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home</executable>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
设置运行配置后我也尝试了如下: -
有人知道我怎么能让它适用于java-10.
我尝试运行以下代码: -
public class App {
public static void main(String[] args) {
var list = new ArrayList<String>();
System.out.println("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
更新: -我在评论中应用了建议的补丁,但仍然失败.
截图如下: -
另外,我按照这篇文章进行编译.所以,编译实际上是从eclipse(maven install)工作的,但是当我尝试运行应用程序时它仍然失败.
我有一个 springboot 应用程序,我试图将以下内容添加到application.properties文件中
spring.datasource.initialize=false
当我添加这个时,我看到如下警告:
我试图找出取代这个已弃用属性的新属性是什么,但徒劳无功。
任何人都可以帮助解决这个问题!
参考迁移指南会很棒。
我有一个班级列表说 ProductDto
public class ProductDto {
private String Id;
private String status;
private Booker booker;
private String category;
private String type;
}
Run Code Online (Sandbox Code Playgroud)
我想要一张地图如下: -
Map<String,Map<String,Map<String,Booker>>
属性将映射如下:
Map<status,Map<category,Map<type,Booker>
我知道可以轻松完成一个级别的分组而无需任何麻烦Collectors.groupingBy.
我试图将它用于嵌套级别,但是当我为关键字段开始出现相同的值时,它失败了.
我的代码如下: -
list.stream()
.collect(Collectors.groupingBy(
(FenergoProductDto productDto) ->
productDto.getStatus()
,
Collectors.toMap(k -> k.getProductCategory(), fProductDto -> {
Map<String, Booker> productTypeMap = new ProductTypes();
productTypeMap.put(fProductDto.getProductTypeName(),
createBooker(fProductDto.getBookingEntityName()));
return productTypeMap;
})
));
Run Code Online (Sandbox Code Playgroud)
如果有人知道通过使用流来做到这一点的好方法,请分享!
我有一个插入语句,如下所示
private final COLUMNS = "NAME,TYPE,STATUS,CATEGORY";
String values = list
.stream()
.collect(Collectors.joining(","));
String insertStatement = String.format("INSERT INTO ifc.documents (%s) VALUES (%s) ",COLUMNS,values);
Run Code Online (Sandbox Code Playgroud)
我可以轻松地将COLUMNS设置为不需要引号但是对于值,我的SQL失败并且抱怨上面的代码缺少引号.
所以,我试过了
String values = list.stream()
.collect(Collectors.joining("','"));
Run Code Online (Sandbox Code Playgroud)
但它也失败了.所以我做了一个解决方法,并添加了另一个语句前缀和后缀单引号,它开始工作.
values = "'"+values+"'";
Run Code Online (Sandbox Code Playgroud)
更具体地说,如果我在列表中说"休息","测试"和"最佳"
然后预期的产出是
'rest','test','best'
Run Code Online (Sandbox Code Playgroud)
有人知道更好的解决方案吗?
我正在尝试创建一个table扩展的类ArrayList.在其中,我希望能够创建一个map采用lambda表达式并返回table带有映射值的new 的方法.我也想这样做filter.我使用地图和过滤很多,我不喜欢一遍又一遍地输入整个东西.
public abstract class Table<E extends Element> extends ArrayList<E> {
// a lot of other stuff.
public Table<E> map(/*WHAT DO I PUT HERE?*/ mapper) {
return this.stream().map(mapper).collect(/*WHAT DO I PUT HERE?*/);
}
public Table<E> filter(/*WHAT DO I PUT HERE?*/ predicate) {
return this.stream().filter(predicate).collect(/*WHAT DO I PUT HERE?*/);
}
}
Run Code Online (Sandbox Code Playgroud)
我仍在试图找出泛型.也许有更好的方法.我不知道.我曾尝试复制原始代码中的内容ArrayList,但我尝试的所有内容似乎都会产生新的问题.
我只是在我的mac机器上安装了JDK 10.检查版本: -
localhost:java-10 vinayprajapati$ java -version
java version "10" 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
Run Code Online (Sandbox Code Playgroud)
为了确保使用的编译器也是同一个版本,我运行如下: -
localhost:java-10 vinayprajapati$ javac -version
javac 10
Run Code Online (Sandbox Code Playgroud)
我创建了一个简单的Maven项目,其结构如下:
localhost:java-10 vinayprajapati$ tree
.
??? pom.xml
??? src
? ??? main
? ? ??? java
? ? ??? com
? ? ??? practice
? ? ??? java_10
? ? ??? App.java
? ??? test
? ??? java
? ??? com
? ??? practice …Run Code Online (Sandbox Code Playgroud) 我正在使用Spring(Boot)构建REST Web服务,并尝试使用hibernate作为orm mapper而不使用任何xml配置.
我基本上可以使用它,但我遇到了配置问题.我实例LocalContainerEntityManagerFactoryBean作为@Bean一个@Configuration文件.
我hibernate.ejb.naming_strategy在下面的例子中设置 - >这似乎适用于创建表,如果它们不存在(列名是像我的@Entity类中的camelCase)但是当执行查询时,hibernate"忘记"关于这个命名配置和尝试使用另一种命名策略与under_score_attributes - >显然这些查询失败.我需要设置其他任何属性吗?
或者另一种配置属性的方法,最好不要添加cfg.xml或者persistence.xml?
LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
Properties props = new Properties();
props.put("hibernate.hbm2ddl.auto", "create");
props.put("hibernate.ejb.naming_strategy","org.hibernate.cfg.DefaultNamingStrategy");
lef.setJpaProperties(props);
lef.afterPropertiesSet();
Run Code Online (Sandbox Code Playgroud)