diff --git a/settings.gradle.kts b/settings.gradle.kts index 0a8b5cd..6951431 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -9,5 +9,6 @@ rootProject.name = "spring-boot-examples" include( "file-upload", "security", "security-with-jpa", "validation", "testing", "mqtt", "websocket", "restful", "swing", "rest-doc", - "cache", "security-with-jwt", "exception", "i18n", "i18n-mustache","mvc" + "cache", "security-with-jwt", "exception", "i18n", "i18n-mustache","mvc", + "thymeleaf" ) diff --git a/thymeleaf/build.gradle.kts b/thymeleaf/build.gradle.kts new file mode 100644 index 0000000..0c1caac --- /dev/null +++ b/thymeleaf/build.gradle.kts @@ -0,0 +1,27 @@ +/* + * Spring-boot Examples + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +plugins { + id("elex-spring-boot") + + id("org.springframework.boot") version "2.5.3" + id("io.spring.dependency-management") version "1.0.11.RELEASE" +} + +dependencies { + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-thymeleaf") + + compileOnly("org.projectlombok:lombok") + developmentOnly("org.springframework.boot:spring-boot-devtools") + + annotationProcessor("org.springframework.boot:spring-boot-configuration-processor") + annotationProcessor("org.projectlombok:lombok") + + testImplementation("org.springframework.boot:spring-boot-starter-test") + +} diff --git a/thymeleaf/src/main/java/kr/pe/elex/examples/Application.java b/thymeleaf/src/main/java/kr/pe/elex/examples/Application.java new file mode 100644 index 0000000..7ff4bbf --- /dev/null +++ b/thymeleaf/src/main/java/kr/pe/elex/examples/Application.java @@ -0,0 +1,20 @@ +/* + * Spring-boot Examples + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/thymeleaf/src/main/java/kr/pe/elex/examples/Copyright.java b/thymeleaf/src/main/java/kr/pe/elex/examples/Copyright.java new file mode 100644 index 0000000..f71f7c0 --- /dev/null +++ b/thymeleaf/src/main/java/kr/pe/elex/examples/Copyright.java @@ -0,0 +1,9 @@ +package kr.pe.elex.examples; + +import lombok.Data; + +@Data +public class Copyright { + private int year = 2021; + private String holder = "Elex"; +} diff --git a/thymeleaf/src/main/java/kr/pe/elex/examples/MyController.java b/thymeleaf/src/main/java/kr/pe/elex/examples/MyController.java new file mode 100644 index 0000000..6f49926 --- /dev/null +++ b/thymeleaf/src/main/java/kr/pe/elex/examples/MyController.java @@ -0,0 +1,33 @@ +/* + * Spring-boot Examples + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.util.MultiValueMap; +import org.springframework.web.bind.annotation.*; + +@Slf4j +@Controller +public class MyController { + @Autowired + private MyService service; + + @GetMapping({"/", "/persons"}) + public String index(Model model) { + model.addAttribute("user", service.getUser()); + model.addAttribute("copyright", service.getCopyright()); + model.addAttribute("personList",service.getPersonList()); + + return "main"; + } + + +} diff --git a/thymeleaf/src/main/java/kr/pe/elex/examples/MyService.java b/thymeleaf/src/main/java/kr/pe/elex/examples/MyService.java new file mode 100644 index 0000000..31e6679 --- /dev/null +++ b/thymeleaf/src/main/java/kr/pe/elex/examples/MyService.java @@ -0,0 +1,26 @@ +package kr.pe.elex.examples; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; + +@Slf4j +@Service +public class MyService { + public Person getUser() { + return new Person("Charlie", 14); + } + + public List getPersonList() { + return Arrays.asList( + new Person("Charlie", 14), + new Person("Steve", 34), + new Person("Jane", 22)); + } + + public Copyright getCopyright() { + return new Copyright(); + } +} diff --git a/thymeleaf/src/main/java/kr/pe/elex/examples/Person.java b/thymeleaf/src/main/java/kr/pe/elex/examples/Person.java new file mode 100644 index 0000000..ed998d1 --- /dev/null +++ b/thymeleaf/src/main/java/kr/pe/elex/examples/Person.java @@ -0,0 +1,14 @@ +package kr.pe.elex.examples; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class Person { + @JsonProperty + private String name; + @JsonProperty + private int age; +} diff --git a/thymeleaf/src/main/java/kr/pe/elex/examples/package-info.java b/thymeleaf/src/main/java/kr/pe/elex/examples/package-info.java new file mode 100644 index 0000000..ce9cc62 --- /dev/null +++ b/thymeleaf/src/main/java/kr/pe/elex/examples/package-info.java @@ -0,0 +1,8 @@ +/* + * Spring-boot Examples + * + * Copyright (c) 2021. Elex. All Rights Reserved. + * https://www.elex-project.com/ + */ + +package kr.pe.elex.examples; diff --git a/thymeleaf/src/main/resources/application.yaml b/thymeleaf/src/main/resources/application.yaml new file mode 100644 index 0000000..e5957b9 --- /dev/null +++ b/thymeleaf/src/main/resources/application.yaml @@ -0,0 +1,5 @@ +spring: + application: + name: My spring-boot project +server: + port: 8080 diff --git a/thymeleaf/src/main/resources/banner.txt b/thymeleaf/src/main/resources/banner.txt new file mode 100644 index 0000000..f7a35db --- /dev/null +++ b/thymeleaf/src/main/resources/banner.txt @@ -0,0 +1,10 @@ + ('-. ('-. ) (`-. + _( OO) _( OO) ( OO ). +(,------.,--. (,------.(_/. \_)-. + | .---'| |.-') | .---' \ `.' / + | | | | OO ) | | \ /\ +(| '--. | |`-' |(| '--. \ \ | + | .--'(| '---.' | .--' .' \_) + | `---.| | | `---. / .'. \ + `------'`------' `------''--' '--' +powered by ELEX diff --git a/thymeleaf/src/main/resources/logback-spring.xml b/thymeleaf/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..19f023b --- /dev/null +++ b/thymeleaf/src/main/resources/logback-spring.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + + + + + + UTF-8 + ${FILE_LOG_PATTERN} + + ${LOG_PATH} + + ${LOG_DIR}/sebastian_%d{yyyy-MM-dd}_%i.log.gz + + 10MB + + 60 + + + + + + + + + + + + + diff --git a/thymeleaf/src/main/resources/templates/fragment.html b/thymeleaf/src/main/resources/templates/fragment.html new file mode 100644 index 0000000..df998f2 --- /dev/null +++ b/thymeleaf/src/main/resources/templates/fragment.html @@ -0,0 +1,13 @@ + + + + + Fragment + + + + + + diff --git a/thymeleaf/src/main/resources/templates/main.html b/thymeleaf/src/main/resources/templates/main.html new file mode 100644 index 0000000..51279aa --- /dev/null +++ b/thymeleaf/src/main/resources/templates/main.html @@ -0,0 +1,17 @@ + + + + +

+ Hello, User Name. +

+ + + +