小编sva*_*605的帖子

Spring Boot + Gradle:如何构建可执行jar

我正在尝试在Spring Boot + Gradle项目中构建一个可执行jar,但现在没有任何作用.这是最简单的结构.可能,Gradle配置中缺少某些东西.

摇篮:

buildscript {
    ext {
        springBootVersion = '1.5.8.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'org.springframework.boot'

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

jar {
    manifest {
        attributes 'Main-Class': 'com.example.demo.DemoApplication'
    }
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web')
}
Run Code Online (Sandbox Code Playgroud)

主配置文件:

@RestController
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args); …
Run Code Online (Sandbox Code Playgroud)

java gradle spring-boot

16
推荐指数
4
解决办法
3万
查看次数

使用Java的Stream.reduce()来计算功率总和会产生意外结果

List<Integer> list = Arrays.asList(1, 2, 3);

int i = list.stream().mapToInt(e -> e)
            .reduce((x, y) -> (int) Math.pow(x, list.size()) + (int) Math.pow(y, list.size()))
            .getAsInt();
        System.out.println(i);
Run Code Online (Sandbox Code Playgroud)

这个操作的结果应该是1*1*1 + 2*2*2 + 3*3*3 = 36.但是我得到i = 756.怎么了?为了使reduce()正常工作,我应该更改什么?

java-8 java-stream

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

Kotlin:具有多个不同类型的setter的单一属性

我正在尝试构建一个具有LocalDate类型属性的类,该类具有接受不同类型的setter:LocalDateString.如果是LocalDate,则直接分配值,如果是String,则对其进行解析然后分配.在Java中,我只需要实现两个重载的setter来处理上述两种情况.但我不知道如何处理Kotlin.我试过这个:

class SomeExampleClass(var _date: LocalDate) {
    var date = _date
        set(value) {
            when(value) {
                is LocalDate -> value
                is String -> LocalDate.parse(value)
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

它不编译.我该如何解决这个问题?

kotlin

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

使用stream()创建由2个列表组成的地图.在Java中收集

例如,有两个列表:

List<Double> list1 = Arrays.asList(1.0, 2.0);
List<String> list2 = Arrays.asList("one_point_zero", "two_point_zero");
Run Code Online (Sandbox Code Playgroud)

使用Stream,我想创建一个由这些列表组成的映射,其中list1用于键,list2用于值.为此,我需要创建一个辅助列表:

List<Integer> list0 = Arrays.asList(0, 1);
Run Code Online (Sandbox Code Playgroud)

这是地图:

Map<Double, String> map2 = list0.stream()
                .collect(Collectors.toMap(list1::get, list2::get));
Run Code Online (Sandbox Code Playgroud)

list0用于list1 :: get和list2 ::开始工作.没有创建list0有没有更简单的方法?我尝试了以下代码,但它不起作用:

Map<Double, String> map2 = IntStream
                .iterate(0, e -> e + 1)
                .limit(list1.size())
                .collect(Collectors.toMap(list1::get, list2::get));
Run Code Online (Sandbox Code Playgroud)

java-8 java-stream collectors

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

CSS:如何将页脚附加到页面底部

我想将页脚附加到页面底部。为此,我按照其他类似主题中的建议使用了 css 中的绝对位置。但由于未知的原因,页脚的行为就像是固定的,而不是绝对的。

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  font-family: "Times New Roman", Times, serif;
  font-size: 20px;
}

header {
  background: rgba(150, 150, 150, 0.5);
  border-bottom: solid 1px;
  width: 100%;
  text-align: center;
  padding-top: 20px;
  padding-bottom: 20px;
}

main {
  padding-top: 5px;
  padding-left: 100px;
  padding-right: 100px;
  padding-bottom: 60px;
}

footer {
  border-top: solid 1px;
  background: rgba(150, 150, 150, 0.5);
  width: 100%;
  height: 40px;
  padding-top: 10px;
  position: absolute;
  bottom: 0;
  left: 0;
  text-align: center;
}
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html> …
Run Code Online (Sandbox Code Playgroud)

html css

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

Java 方法中的副作用

这可能是一个微不足道的问题,但我需要澄清一下……有一本书叫做 Clean Code 说我们的方法应该很小,最好是 5-10 行长。为了实现这一点,我们需要将我们的方法拆分成更小的方法。例如,我们可能有如下所示的 someMethod() 。比方说,修改“示例”需要 5 行,我决定将它移到一个单独的方法中,在那里修改“示例”并将其返回给 someMethod()。通过这样做, someMethod() 变得更小且更易于阅读。这很好,但是有一种叫做“副作用”的东西,它说我们不应该将对象传递给另一个方法并在那里修改它。至少,有人告诉我这是一个坏主意)但是我在 Clean Code 中没有看到任何禁止我这样做的内容。

public Example someMethod() {

    // ... different lines here

    Example example = new Example();
    example = doSomethingHere(example, param1, param2, ...);    

    // ... different lines here

    return example;
}

private Example doSomethingHere(Example example, 'some additional params here') {

    // ... modify example's fields here ...

    return example;
}
Run Code Online (Sandbox Code Playgroud)

那么,我是否允许以这种方式拆分方法或禁止这种副作用,而是应该处理一个相当长的方法,该方法肯定违反了 Clean Code 关于短方法的规则?


更新(子方法的更具体名称)

public Example someMethod() {

    // ... different lines here

    Example example = …
Run Code Online (Sandbox Code Playgroud)

java

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

Thymeleaf + Spring Boot:将html放在子文件夹中

默认情况下,Thymeleaf需要将所有html文件都存在于scr / main / java / resources / templates中。为了避免在template文件夹中造成混乱,我需要在此处创建不同的子滑块。问题在于放置在那里的html文件永远都不会得到解决。示例如下。

结构体:

项目结构

IndexController:

@Controller
public class IndexController {
    @GetMapping(value = "/")
    public String index() {
        return "index";
    }
}
Run Code Online (Sandbox Code Playgroud)

默认模板:

<!DOCTYPE html>
<html lang="en"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
    <meta charset="UTF-8"/>
    <title>Default template</title>
</head>
<body>

<section id="site-content" layout:fragment="content"></section>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

指数:

<!DOCTYPE html>
<html lang="en"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="default">
<head>
    <meta charset="UTF-8"/>
    <title>Index</title>
</head>
<body>

<div layout:fragment="content">
    <div>
        This is index page
    </div>

    <a href="subfolder/page.html">Page</a>
</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

子文件夹中的页面:

<!DOCTYPE html>
<html lang="en"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      layout:decorator="default">
<head>
    <meta …
Run Code Online (Sandbox Code Playgroud)

html thymeleaf spring-boot

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

标签 统计

html ×2

java ×2

java-8 ×2

java-stream ×2

spring-boot ×2

collectors ×1

css ×1

gradle ×1

kotlin ×1

thymeleaf ×1