전체 글

전체 글

    [JAVA]String 비교시 == 대신 .equals써야되는 이유

    spring boot에서 세션에 저장된 로그인 아이디와 게시글 정보에 저장된 아이디를 비교하는 로직을 만들던 중 문제가 발견했다. public boolean checkModificationAuthority(String loginId, String creatorId) { System.out.println("."+loginId+"."); System.out.println("."+creatorId+"."); return loginId == creatorId; } 로그는 아래와 같다. .test. .test. true 순간 왜 그런지 고민했다. MyBatis에서 취급하는 String이 다른 객체인가? 같은 생각을 해봣다. 하지만 잠시후 왜 그런지 알것 같았다. 자바의 정석 책을 공부하다가 읽었던 내용이 떠올랐다..

    [JAVA] 예외와 예외 처리(exception)

    프로그램 오류 프로그램이 실행 중 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이에 대한 원인을 에러 또는 오류라고 한다. 오류의 종류 자바에서는 실행중 발생할수 있는 오류를 두가지로 분류하였다. 에러(error) : 프로그램 코드에 의해서 수습될수 없는 심각한 오류 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 오류 자바에서 오류는 아래와 같은 상속 구조를 갖는다. 모든 예외(Exception)는 Exception클래스의 상속을 받고 있고 예외는 크게 두개로 나눌수 있다. RuntimeException클래스와 그 자손들 Exception클래스와 그 자손들(RuntimeException제외) 프로그래머의 실수로 발생 예외처리가 강제되지 않음 사용자의 실수 같은 외적인 요소로 ..

    [mybais 에러] applicationContext.getResource, .getResources 차이

    package MyFirstBoard.configuration; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProper..

    [Lombok] Lombok 안될 때(@Data, @Getter, @Setter)

    간단한 로그인 서비스를 만들고 있었는데 다음과 같은 코드에서 에러가 났다. public Member login(String loginId, String password) { return memberRepository.findByLoginId(loginId) .filter(member -> member.getPassword().equals(password)) .orElse(null); } error: cannot find symbol .filter(member -> member.getPassword().equals(password)) ^ symbol: method getPassword() location: variable member of type Member 문제가 없었다. 처음에는 Optional에 f..

    이벤트 처리 관련 공부하기

    https://ysjune.github.io/posts/java/eventlistener/

    [Transaction] File저장과 DB저장을 함께 Transaction 하고 싶다.

    @Service @Slf4j public class BoardServiceImpl implements BoardService{ //....중략 @Override public void insertBoard(BoardDto board, MultipartHttpServletRequest multipartHttpServletRequest) throws Exception { boardMapper.insertBoard(board); List list = fileUtils.parseFileInfo(board.getBoardIdx(), multipartHttpServletRequest); if (CollectionUtils.isEmpty(list) == false){ boardMapper.insertBoardFileL..

    [Transaction] Transaction과 try catch를 같이 사용하면 어떻게 될까?

    Transaction 처리와 try catch를 같이 쓴다면 어떻게 될까 내가 파일 저장과 관련된 부분에 대해 오류가 생겨 찾아보던 중 아래의 글을 찾게 되었고, 굉장히 도움이 된다고 생각해서 정리 해 놓았다. https://okky.kr/articles/1231694 Transaction 처리 Transaction 처리는 간단하게 말해, 한번에 이루어져야하는 작업의 묶음이다. 즉 전체가 완료되던가 전체가 실패해야 한다. 일부 작업의 성공은 허용 하지 않는다. @Transactional public void unitOfWork() { aService.doA(); bService.doB(); cService.doC(); } 위와 같은 메서드가 있을 때, 순차 적으로 처리하다가 doB() 에서 예외가 발생한..