2021-08-07
This commit is contained in:
45
cache/src/main/java/kr/pe/elex/examples/Application.java
vendored
Normal file
45
cache/src/main/java/kr/pe/elex/examples/Application.java
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Spring-boot Examples
|
||||
*
|
||||
* Copyright (c) 2021. Elex. All Rights Reserved.
|
||||
* https://www.elex-project.com/
|
||||
*/
|
||||
|
||||
package kr.pe.elex.examples;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cache.annotation.EnableCaching;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableCaching
|
||||
public class Application {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(Application.class, args);
|
||||
}
|
||||
|
||||
@Component
|
||||
public class MyRunner implements CommandLineRunner {
|
||||
@Autowired
|
||||
private PersonRepository repository;
|
||||
|
||||
@Override
|
||||
public void run(String... args) throws Exception {
|
||||
repository.deleteAll();
|
||||
|
||||
Person charlie = new Person();
|
||||
charlie.setName("Charlie");
|
||||
charlie.setAge(11);
|
||||
repository.save(charlie);
|
||||
|
||||
Person steve = new Person();
|
||||
steve.setName("Steve");
|
||||
steve.setAge(34);
|
||||
repository.save(steve);
|
||||
}
|
||||
}
|
||||
}
|
||||
9
cache/src/main/java/kr/pe/elex/examples/Config.java
vendored
Normal file
9
cache/src/main/java/kr/pe/elex/examples/Config.java
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
package kr.pe.elex.examples;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Slf4j
|
||||
@Configuration
|
||||
public class Config {
|
||||
}
|
||||
34
cache/src/main/java/kr/pe/elex/examples/MyController.java
vendored
Normal file
34
cache/src/main/java/kr/pe/elex/examples/MyController.java
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* 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.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.ContentDisposition;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
public class MyController {
|
||||
@Autowired
|
||||
private MyService service;
|
||||
|
||||
@GetMapping(path = {"/{id}"})
|
||||
public ResponseEntity<Person> index(@PathVariable Long id) {
|
||||
return ResponseEntity.of(service.getItem(id));
|
||||
}
|
||||
|
||||
}
|
||||
28
cache/src/main/java/kr/pe/elex/examples/MyService.java
vendored
Normal file
28
cache/src/main/java/kr/pe/elex/examples/MyService.java
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
package kr.pe.elex.examples;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class MyService {
|
||||
@Autowired
|
||||
private PersonRepository repository;
|
||||
|
||||
@Cacheable("person")
|
||||
public Optional<Person> getItem(long at) {
|
||||
log.info("Calling a repository method!");
|
||||
return repository.findById(at);
|
||||
}
|
||||
|
||||
public void addItem(Person item) {
|
||||
repository.save(item);
|
||||
}
|
||||
}
|
||||
18
cache/src/main/java/kr/pe/elex/examples/Person.java
vendored
Normal file
18
cache/src/main/java/kr/pe/elex/examples/Person.java
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
package kr.pe.elex.examples;
|
||||
|
||||
import lombok.*;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity
|
||||
@Getter @Setter @ToString
|
||||
@NoArgsConstructor @AllArgsConstructor
|
||||
public class Person {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
private long id;
|
||||
@Column
|
||||
private String name;
|
||||
@Column
|
||||
private int age;
|
||||
}
|
||||
8
cache/src/main/java/kr/pe/elex/examples/PersonRepository.java
vendored
Normal file
8
cache/src/main/java/kr/pe/elex/examples/PersonRepository.java
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
package kr.pe.elex.examples;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface PersonRepository extends JpaRepository<Person, Long> {
|
||||
}
|
||||
8
cache/src/main/java/kr/pe/elex/examples/package-info.java
vendored
Normal file
8
cache/src/main/java/kr/pe/elex/examples/package-info.java
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
/*
|
||||
* Spring-boot Examples
|
||||
*
|
||||
* Copyright (c) 2021. Elex. All Rights Reserved.
|
||||
* https://www.elex-project.com/
|
||||
*/
|
||||
|
||||
package kr.pe.elex.examples;
|
||||
17
cache/src/main/resources/application.yaml
vendored
Normal file
17
cache/src/main/resources/application.yaml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
spring:
|
||||
application:
|
||||
name: My spring-boot project
|
||||
mustache:
|
||||
expose-request-attributes: true
|
||||
h2:
|
||||
console:
|
||||
enabled: true
|
||||
datasource:
|
||||
url: jdbc:h2:mem:testdb
|
||||
driverClassName: org.h2.Driver
|
||||
username: sa
|
||||
password: pw
|
||||
jpa:
|
||||
database-platform: org.hibernate.dialect.H2Dialect
|
||||
server:
|
||||
port: 8080
|
||||
10
cache/src/main/resources/banner.txt
vendored
Normal file
10
cache/src/main/resources/banner.txt
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
('-. ('-. ) (`-.
|
||||
_( OO) _( OO) ( OO ).
|
||||
(,------.,--. (,------.(_/. \_)-.
|
||||
| .---'| |.-') | .---' \ `.' /
|
||||
| | | | OO ) | | \ /\
|
||||
(| '--. | |`-' |(| '--. \ \ |
|
||||
| .--'(| '---.' | .--' .' \_)
|
||||
| `---.| | | `---. / .'. \
|
||||
`------'`------' `------''--' '--'
|
||||
powered by ELEX
|
||||
48
cache/src/main/resources/logback-spring.xml
vendored
Normal file
48
cache/src/main/resources/logback-spring.xml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
~ Spring-boot Examples
|
||||
~
|
||||
~ Copyright (c) 2021. Elex. All Rights Reserved.
|
||||
~ https://www.elex-project.com/
|
||||
-->
|
||||
|
||||
<configuration>
|
||||
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||||
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
|
||||
|
||||
<springProperty name="LOG_DIR" source="logging.path"
|
||||
defaultValue="${user.home}/logs"/>
|
||||
<property name="LOG_PATH" value="${LOG_DIR}/stephanie.log"/>
|
||||
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="ROLLING-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<charset>UTF-8</charset>
|
||||
<pattern>${FILE_LOG_PATTERN}</pattern>
|
||||
</encoder>
|
||||
<file>${LOG_PATH}</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<fileNamePattern>${LOG_DIR}/sebastian_%d{yyyy-MM-dd}_%i.log.gz</fileNamePattern>
|
||||
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</timeBasedFileNamingAndTriggeringPolicy>
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
|
||||
<logger name="kr.pe.elex" level="debug" additivity="false">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="ROLLING-FILE"/>
|
||||
</logger>
|
||||
<root level="info">
|
||||
<appender-ref ref="CONSOLE"/>
|
||||
<appender-ref ref="ROLLING-FILE"/>
|
||||
</root>
|
||||
|
||||
</configuration>
|
||||
15
cache/src/main/resources/templates/main.mustache
vendored
Normal file
15
cache/src/main/resources/templates/main.mustache
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
<h1>File Upload Example!!!</h1>
|
||||
<form action="/upload" method="POST" enctype="multipart/form-data">
|
||||
<label for="file">Select a file: </label>
|
||||
<input id="file" name="file" type="file" title="Upload"/>
|
||||
<div>
|
||||
<button>Upload</button>
|
||||
</div>
|
||||
</form>
|
||||
<h2>Uploaded Files</h2>
|
||||
<p>Click to download.</p>
|
||||
<ul>
|
||||
{{#files}}
|
||||
<li><a href="/files/{{.}}">{{.}}</a></li>
|
||||
{{/files}}
|
||||
</ul>
|
||||
Reference in New Issue
Block a user