我正在尝试在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) 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()正常工作,我应该更改什么?
我正在尝试构建一个具有LocalDate类型属性的类,该类具有接受不同类型的setter:LocalDate或String.如果是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)
它不编译.我该如何解决这个问题?
例如,有两个列表:
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) 我想将页脚附加到页面底部。为此,我按照其他类似主题中的建议使用了 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)这可能是一个微不足道的问题,但我需要澄清一下……有一本书叫做 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) 默认情况下,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 ×2
java ×2
java-8 ×2
java-stream ×2
spring-boot ×2
collectors ×1
css ×1
gradle ×1
kotlin ×1
thymeleaf ×1