Spring으로 개발하면 주로 화면을 JSP나 Thymeleaf를 쓰는곳이 많이 있다. 이 두가지를 쓰면서 제일 많이하는 것중 하나가 session 또는 model에 데이터를 담아서 view 페이지와 함께 렌더링 하는 작업을 많이하게 되는데 이때 주의해야할 점이 있다. 예제코드를 살펴보자. 회원정보 조회 회원 아이디로 DB에서 회원정보를 조회한 후 'member' 라는 key로 session에 저장한 코드이다. 회원정보 출력 session에 저장된 회원의 이름과 주소를 출력해보았지만 저장된 정보가 나오지 않았다. 왜 나오지 않는지 스프링 코드를 한번 살펴보자 동작 살펴보기 RequestAttributes.java Spring에서는 RequestAttributes 인터페이스를 제공하는데 request와 s..
Spring으로 개발을 하면 Spring에서 제공하는 Bean이나 개발자가 직접 생성한 Bean을 외부에서 주입받아야 하는경우가 많다. 이건 스프링의 핵심기술인 DI (Dependency Injection) 입니다. 스프링에서는 DI를 하기위해 @Autowired 어노테이션이라는걸 제공해주는데 간략히 설명하자면 필드, 생성자에 주로 사용되는데 해당 어노테이션을 선언해주면 스프링이 관리하는 Bean중에서 해당 타입의 Bean이 있다면 필드 또는 생성자 파라미터 주입해주는 어노테이션이다. 일단 @Autowired의 기본적인 동작과 예제코드를 한번 살펴보도록 합니다. 테스트할 Bean객체 생성 BeanConfig.java 파일에 TestBean이라는 타입의 Bean을 생성하여 setBeanName 메서드로 '..
웹 애플리케이션 개발을 하다보면 메일발송을 구현해야 할 때가 있다. 그때 메일발송을 단순 텍스트가 아닌 HTML 템플릿 형태로 전송해야 될 경우가 있는데 예제코드와 함께 알아보자. 라이브러리 추가 org.springframework.boot spring-boot-starter-mail org.springframework.boot spring-boot-starter-thymeleaf thymeleaf 라이브러리와 Spring Boot에서 제공해주는 mail 라이브러리를 pom.xml에 추가하자 application.properties(yml) 파일에 발신자 정보 등록 발신자의 메일정보는 naver로 해두었다. naver 이메일 환경설정 수정 발신자의 메일정보가 naver이니 해당 메일정보로 로그인후 메일함..
이번장에서는 JAVA의 static에 대해 정리해보고자 한다. static(정적)이란 '고정된' 의미를 말하는데 static 키워드는 필드와 메서드에 올 수 있다. 이때 이 필드와 메서드를 클래스변수, 클래스메서드라고 부른다. 그리고 static 키워드를 붙히게 되면 ClassLoader가 class파일을 메모리에 적재할때 static 영역에 생성되기 때문에 인스턴스를 생성하지 않아도 접근할 수 있다. 예제코드1 위 예제코드를 작성함으로 JVM은 다음과 같은 행위를 하게된다 (1) Main.java를 Main.class로 컴파일을 하게된다. (2) Line 8에서 Main이란 이름을 가진 생성자를 찾아 그 생성자를 가진 class를 인스턴스화 하여 Heap영역에 적재한다 (3) 인스턴스화된걸 main 이..