Spring 15

[SpringData JPA] query method predicate keywords - null이 아닌 빈값을 제외하고 싶을때

보통은 컬럼값에 null이거나 null이 아닌 값을 쿼리하는 경우가 많은데 가끔 빈값으로 데이터를 채워 넣고 빈값("")이 아닌 데이터를 쿼리해서 리턴해야할 경우가 있다. 예) phoneNumber != "" Spring Data JPA에서 기본으로 제공하는 repository method명에는 isEmpty나 isBlank같은건 없다. 대신 method의 argument로 빈값("")을 넘겨 받도록 하고 Not 을 써주면 된다. repository.findByPhoneNumberNot("") https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repository-query-keywords Spring Data JPA - Referen..

backend/Spring 2021.10.14

[Spring] Lazy Initialization in Spring Boot 2.2 - 번역

Lazy Initialization in Spring Boot 2.2 https://spring.io/blog/2019/03/14/lazy-initialization-in-spring-boot-2-2 위의 글을 읽다가 조금만 번역해 보았습니다. 잘못된 부분이 있을 수 있으니 있다면 제보해주세요~ What Does it Mean to be Lazy? Spring Framework는 기본적으로 application context가 refresh될때 context의 모든 bean을 생성하고 dependency들을 inject(주입)된다. 대조적으로 bean definition이 느리게 초기화되도록 설정되면, 필요할 때까지는 dependency가 inject되지 않는다. Lazy Initialization 활성..

backend/Spring 2019.07.16

[SpringSecurity] Authentication(인증) 관련 클래스와 처리

Spring Security에서의 Authentication(인증)과 관련된 클래스와 내부 처리에 대해 알아보겠습니다. Spring Security에 대해 큰 흐름은 알지만, 처음부터 적용하는게 아니면 어떤 권한을 주고 권한 체크하는 로직만 추가하거나 수정하며 생각없이 쓰게 되는데, 어떤 흐름으로 되는지 전보다 좀 더 살펴볼 기회가 있었고 Spring Security의 각 클래스들이 어떤 일을 하는지에 대해 두서없이 소소하게 정리해봅니다. 이 글에서 Spring Security Version은 3.2.5 버전이 기준입니다. 1. 인증과 인가란 무엇인가? 인증 절차를 거친후 인가 절차를 진행! 1) 인증(Authentication) : 해당 사용자가 본인이 맞는지를 확인하는 절차. 2) 인가(Authori..

backend/Spring 2016.01.25

[Spring] @Autowired의 Before/After

Spring framework 2.5에 추가된 @Autowired annotation에 관한 글을 보고 정리. 알고있는 내용이기에~ 그냥 가볍게 Before 와 After code Before - @Autowired annotation이 없었을 때 applicationContext.xml에서 설정 EmpDao의 bean을 inject public class EmpManager { private EmpDao empDao; public EmpDao getEmpDao() { return empDao; } public void setEmpDao(EmpDao empDao) { this.empDao = empDao; } ... } 이랬던 코드가~ 바뀐다. After applicationContext.xml에서 설정..

backend/Spring 2009.04.29

[iBATIS] 7. iBATIS + Spring + transaction

7. iBATIS + Spring + transaction 1. 코드 기반의 트랜잭션 처리 (Progrmmatic Transaction) 2. 선언적 트랜잭션 (Declarative Transaction) - 태그를 이용 - TransactionProxyFactoryBean 태그를 이용 - @Transactional 어노테이션을 이용 태그 이용 @ Transactional 어노테이션을 이용 @Transactional(readOnly = true) public class DefaultFooService implements FooService { public Foo getFoo(String fooName) { // do something } // these settings have precedence for..

backend/iBatis 2008.09.02

[iBATIS] 6. iBATIS + Spring

6. iBATIS + Spring SqlMapClientFactoryBean (org.springframework.orm.ibatis.SqlMapClientFactoryBean) SqlMapClientTemplate (org.springframework.orm.ibatis.SqlMapClientTemplate) SqlMapClientDaoSupport (org.springframework.orm.ibatis.support.SqlMapClientDaoSupport) 스프링의 iBATIS 연동지원 iBATIS 에서 데이터베이스 연동을 처리할 때 사용되는 SqlMapClient 역시 JDBC 프로그램을 할 때와 마찬가지로 try-catch 블록을 사용해서 예외를 처리해 주어야 한다 . 또한 에러원인에 따라 알..

backend/iBatis 2008.09.01

[dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글)

이 dW문서는 작년에 작성되었던데 얼마전 Spring과 관련하여 Acegi에 대해 살짝~ 공부해 봐서 마침 dW에 글이 있나 찾아보니 역시나 있군요~ 우리나라 말로하면 "아저씨"(지극히 저의 개인적인 생각)란 이름과 비슷한 아씨지(어떤분은 머 다른말로 표현하셨던데 어쩜 그게 더 비슷한거 같기도 하고) 아무튼! What is Acegi Security? Acegi Security is a powerful, flexible security solution for enterprise software, with a particular emphasis on applications that use Spring. Using Acegi Security provides your applications with compr..

[Spring] 스프링에서 VelocityTools 환경설정

스프링에서 벨로시티 뷰 템플릿 엔진을 사용하고 있는데 여기에 편리한 tools를 사용하기 위해서 필요한 설정을 기억하기 위해 기록합니다. VelocityTools는 벨로시티 템플릿에서 숫자나 날짜, url등의 포맷팅을 지원하는 툴이고, VelocityTools프로젝트에는 GenericTools, VelocityView, VelocityStruts 세개의 부분으로 나눠져 있습니다. 보통 GenericTools를 많이 쓸일이 많기 때문에~ 조금 정리해보면, Generic Tools에는, DateTool A tool for manipulating and formatting dates. MathTool A tool for performing floating point math. NumberTool A tool ..

backend/Spring 2008.03.20

[Spring] Bean과 BeanFactory의 후처리

빈의 후처리 스 프링은 빈의 생명주기에 끼어들어 빈의 설정을 재검토하거나 바꿀 수 있는 2개의 기회를 제공한다. 후처리는 어떤 이벤트가 발생한 후에 처리되는 것이라고 추측할 수 있다. 이벤트란 빈이 설정되거나 인스턴스화되는 것을 말한다. BeanPostProcessor 인터페이스는 빈이 생성되거나 묶인 후에 변경할 수 있는 두개의 기회를 제공 Interface BeanPostProcessor에서는 두개의 메소드를 제공한다 postProcessBeforeInitialization : 빈이 초기화(afterPropertiesSet(), 빈의 커스텀 init-method 호출)되기 직전에 호출 postProcessAfterInitialization : 빈이 초기화된 직후에 호출 빈 팩토리의 후처리 BeanFa..

backend/Spring 2008.02.12

[Spring] 자동 묶기(Autowire)

자동 묶기(Autowire) 자동 묶기의 네 종류 byName : 묶고자 하는 특성의 이름과 동일한 이름이나 ID를 가진 빈을 컨테이너에서 찾는다. 빈을 찾지 못하면 그 특성을 묶이지 않은 채로 남는다. byType : 묶 고자 하는 특성의 타입과 동일한 타입을 가진 빈을 컨테이너에서 찾는다. 빈을 찾지 못하면 그 특성은 묶이지 않은 채로 남고, 하나 이상의 빈을 찾게 되면 org.springframework.beans.factory.UnsatisfiedDependencyException을 던진다. Constructor : 묶고자 하는 빈의 생성자 중 하나의 파라미터와 맞는 하나 이상의 빈을 컨테이너에서 찾는다. 모호한 빈이나 생성자가 발견될 경우 org.springframework.beans.facto..

backend/Spring 2008.02.12

[Spring] 세터 주입(Setter Injection)의 대안

세터 주입(Setter Injection)의 대안 - 생성자 주입(Constructor Injection) 세터 주입은 빈 특성을 설정하고 묶을 수 있는 직관적인 방법이지만, 한 가지 단점은 변경될 수 있는 모든 특성이 세터 메소드를 통해서 사용할 수 있다고 가정하는 것에 있다. 하지만 빈이 이와 같은 방식으로 작동하기를 원하지 않을 때, 이런 유형의 빈이 인스턴스화될 때에는 어떤 특성도 설정될 수 없으며, 따라서 빈이 유효하지 않은 상태로 있을 가능성이 있다. 어떤 특성들은 빈이 생성될 때 한 번만 설정되고 그 이후에는 변경될 수 없도록 만들고 싶은 경우도 있다. 이는 세터를 통해 모든 특성을 공개하는 경우에는 곤란해진다. 대안은 일부 특성들은 생성자 를 통해 설정될 수 있도록 빈을 설계하는 것이다. ..

backend/Spring 2008.02.05

[Spring] 빈 묶기(Bean wiring)

빈 묶기(Bean wiring) XML로 묶기 : 다음을 이용해 스프링 컨테이너가 XML을 통한 빈 묶기를 지원한다. XmlBeanFactory ClassPathXmlApplicaionContext FileSystemXmlApplicationContext XmlWebApplicationContext 프로토타입과 싱글톤 비교 스프링의 모든 빈은 싱글톤. getBean()의 호출에 의해서든 묶기를 통해서든 간에, 컨테이너가 빈을 배포할 때에는 항상 그 빈의 완전히 동일한 인스턴스를 내줄 것이다. scope="singleton" scope="prototype" 프로토타입 빈을 정의하는 것이 유리할 때 프로토타입을 정의한다는 것은 실제 하나의 빈을 정의하는 것이 아닌, 청사진을 정의한다는 의미다. 그 다음엔 그..

backend/Spring 2008.02.05

[Spring] Hitting the database

* Hitting the database 1) Spring의 DataAccessException java.sql.SQLException은 checked Exception입니다. 즉, 개발자가 try-catch로 잡아줘야 합니다. 이는 코드를 난잡하게 만들수 있습니다. 그리고 SQLException이 제공하는 예외는 Spring에 비해서 매우 종류가 많지 않습니다. DataAccessException은 SQLException이나 HibernateException등과 같이 특정 기술에 의존적인 예외를 던지지 않기때문에, 데이터 접근 인터페이스가 구현에 의존적인 예외가 아닌 스프링의 일반적인 DataAccessException을 던지게 함으로써, 특정한 퍼시스턴스 구현에 결합되는 일을 방지합니다. DataAc..

backend/Spring 2007.11.04

5회 스프링 프레임웍 사용자 모임에 다녀왔습니다.

스프링 프레임웍에 대한 세미나를 1회때인가, 스프링 소개와 IoC할때 가고, 정말 오랫만에 참여한지라 알아들을 수 있을 것인가, 염려와 함께 도곡역으로 향하였습니다. 장소는 도곡역 IBM 온디맨드 홀에서 열렸는데, 입구부터 백기선 님이 안내를 해주시더군요.국민대에서 할때 보다 훨씬 찾기 쉽고 더 집중이 잘 된 장소더군요^^ 1. 이일민님의 Spring Web Flow의 발표내용과 검색내용을 정리한 것 (차분하고, 듬직(?)하신 목소리로 너무 어렵지 않게 머릿속에 잘 들어왔습니다. ) Spring Web Flow (SWF) is an emerging module of The Spring Framework. The module is part of Spring’s web application developme..

backend 2007.10.28