스프링은 일단...
pom.xml(메이븐),
src/main/resources,
config 패키지(각종 설정들),
controller 패키지 들을 중점으로 보면 뭔가 실마리가 하나씩 풀리는 것 같습니다.
일단 pom.xml
<!-- thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
</dependency>
<!-- logger -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
resources/logback-test.xml (스프링이 읽는 순서가 있고 logback-test는 2순위입니다.)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Console -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm} %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<logger name="com.jongsam.*" level="DEBUG"/>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
config 패키지 ThymeleafConfig.java - 클래스 명은 상관없음
타임리프의 경우 한글 인코딩 문제나 엄격한 XHtml의 문제가 있어 조금 변경했는데
일단은 작동하는 것 같습니다.
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.thymeleaf.spring4.SpringTemplateEngine;
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;
import org.thymeleaf.templateresolver.TemplateResolver;
import nz.net.ultraq.thymeleaf.LayoutDialect;
@Configuration
public class ThymeleafConfig {
@Bean
public TemplateResolver templateResolver() {
ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
templateResolver.setPrefix("/views/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("LEGACYHTML5");
// HTML5가 기본인데 엄격한
// HTML을 선호하는 타임리프이기
// 때문에 일단 템플릿 모드를
// LEGACYHTML5로 변경
templateResolver.setCacheable(false);
return templateResolver;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
templateEngine.addDialect(new LayoutDialect());
// setDialect를 사용하면 안됨!
return templateEngine;
}
@Bean
public ViewResolver viewResolver() {
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setCharacterEncoding("UTF-8");
// 한글관련 인코딩에서는 ViewResolver의 케릭터 셋을 추가해준다.
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setOrder(1);
return viewResolver;
}
}
마지막으로 로그 쓰는법
자세한 것은 다른 블로그들을 참조하시면 될것 같습니다.
저는 사용법만을 기록 예정입니다.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
...
void test() {
logger.info("This is Logger - slf4j");
}
이렇게 몇일간의 삽질을 마무리 합니다.
이제 프론트 엔드와 싸우고 난 후 백엔드와 어드민을...ㅠㅠ
웹을 시작하는게 아니었는데...ㅠㅠ