포트폴리오/SPRINGBOOT 옛날 72

06 : 생성자

`즉, 다음과 같이 생성자를 직접 작성한 경우와 동일하다. package com.mysite.sbb; import lombok.Getter; @Getter public class HelloLombok { private final String hello; private final int lombok; public HelloLombok(String hello, int lombok) { this.hello = hello; this.lombok = lombok; } public static void main(String[] args) { HelloLombok helloLombok = new HelloLombok("헬로", 5); System.out.println(helloLombok.getHello()); Sy..

05 : Handling Exception

메서드 위상에서 예외 처리 하는것은 throws를 사용 @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { Optional _siteUser = this.userRepository.findByusername(username); if (_siteUser.isEmpty()) { throw new UsernameNotFoundException("사용자를 찾을수 없습니다."); } SiteUser siteUser = _siteUser.get(); List authorities = new ArrayList(); if ("admin".equals(username)) { authorities..

04 : ANNOTATION

@Configuration 스프링의 환경설정 파일을 알려줌 클래스 위에 작성 import org.springframework.context.annotation.Configuration; - @Bean 메소드 위에 작성 import org.springframework.context.annotation.Bean; - @EnableWebSecurity 모든 요청 URL이 스프링 시큐리티의 제어를 받도록 함 시큐리티클래스 위에 작성 내부적으로 SpringSecurityFilterChain이 동작하여 URL을 필터링함 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; - @Bean public Secu..

3-14 : 검색

단 하나의 맥락 : - Semiflow Bundle : 검색 대상 - 자각 검색 대상 질문의 제목 질문의 내용 질문 작성자 답변의 내용 답변 작성자 - SQL 쿼리 select distinct q.id; q.author_id; q.content; q.create_date; q.modify_date; q.subject from question q left outer join site_user u1 on q.author_id=u1.id left outer join answer a on q.id=a.question_id left outer join site_user u2 on a.author_id=u2.id where q.subject like '%스프링%' or q.content like '%스프링%' or..

3-13 : 마크다운

단 하나의 맥락 : 마크다운 gradle에 설치, thymeleaf 마크다운 컴포넌트를 사용하여 마크다운 적용 Semiflow Bundle : commonmark gradle에 설치 : CommonUtil.java 컴포넌트 작성 : question_detail.html 에 마크다운 적용 자각 - > build.gradle에 implementation 'org.commonmark:commonmark:0.18.2' 후 refresh 및 로컬서버 재시작 - > CommonUtil.java 신규 작성 // import org.commonmark.node.Node; // import org.commonmark.parser.Parser; // import org.commonmark.renderer.html.Html..

3-12 : 앵커

단 하나의 맥락 : 답변 앵커 추가 Semiflow Bundle : question_detail에 앵커 태그 추가 : 답변 등록 및 수정 시 redirect에 앵커 코드 추가 : AnswerService의 create 메소드에서 답변 객체 얻도록 수정 : AnswerController의 createAnswer 메소드, answerModify 메소드, answerVote 메소드 각각 수정 > question_datail.html 의 답변 반복 클래스 내부 최상단에 추가 - > AnswerService에서 public void create(Question question, String content, SiteUser author) 를 public Answer create(~동일~) 로 변경 R : retur..