Spring(23)
-
[토비의 스프링1] 7.1 SQL과 DAO의 분리
DAO와 SQL을 분리해야하는 이유 DAO는 데이터를 가져오고 조작하는 작업의 인터페이스일 뿐이다. 데이터 액세스 로직은 바뀌지 않더라도 DB의 테이블, 필드 이름과 SQL문장이 바뀔 수 있다. (어떤 이유든지 SQL변경이 필요한 상황이 발생하면 SQL을 담고 있는 DAO코드가 수정될 수 밖에 없다. 현재 동작하고 있는 애플리케이션에서 사용되는 SQL이 정확히 어떤 것인지 알려면 최종 빌드에 사용한 자바 코드를 가져와 일일이 코드를 뒤져봐야 하기 때문이다. 7.1.1 XML 설정을 이용한 분리 SQL을 스프링의 XML설정파일로 빼오는 것이다. 개별 SQL프로퍼티 방식 public class UserDaoJdbc implements UserDao{ private String sqlAdd;// 요기에 sql..
2022.06.26 -
[토비의 스프링1] 7 스프링 핵심 기술의 응용
스프링이 가장 가치를 두고 적극적으로 활용하려고 하는 것은 결국 자바 언어가 기반을 두고 있는 객체지향 기술이다. 스프링의 모든 기술은 결국 객체지향적인 언어의 장점을 적극적으로 활용해서 코드를 작성하도록 도와주는 것이다. 7장에서는 지금까지 살펴봤던 세 가지 기술(의존성 주입, 서비스 추상화, AOP)을 애플리케이션 개발에 활용해서 새로운 기능을 만들어보고 이를 통해 스프링의 개발철학과 추구하는 가치, 스프링 사용자에게 요구되는 게 무엇인지를 살펴보겠다. 1. SQL과 DAO의 분리 https://youngjun96.tistory.com/76 [토비의 스프링1] 7.1 SQL과 DAO의 분리 DAO와 SQL을 분리해야하는 이유 DAO는 데이터를 가져오고 조작하는 작업의 인터페이스일 뿐이다. 데이터 액세..
2022.06.26 -
[토비의 스프링1] 7.4 인터페이스 상속을 통한 안전한 기능 확장
예시 - 원칙적으로 권장되지 않지만 때로는 서버가 운영중인 상태에서 서버를 재시작 하지 않고 긴급하게 애플리케이션이 사용중인 SQL을 변경해야 할 상황 운영중에 예상하지 못한 SQL의 오류를 발견했다거나, 특별한 이유로 SQL조건이나 참조 테이블을 급하게 변경해야 할 경우 기존 설계 - SqlService 구현 클래스들은 초기에 리소스부터 SQL 정보를 읽어오면 이를 메모리에 두고 그대로 사용한다. SQL 매핑정보 파일을 변경했다고 해서 메모리상의 SQL 정보가 갱신되지 않는다. 굳이 방법이 있다면 재시작이나 웹 애플리케이션을 리로딩해서 SqlService빈을 초기화 시키는것 뿐... 1. DI와 기능의 확장 DI의 가치를 제대로 얻으려면 먼저 DI에 적합한 오브젝트 설계가 필요 DI를 의식하는 설계 초..
2022.06.20 -
Maven scope
scope dependency 하위에 포함되는 항목 해당 dependency가 포함되는 범위에 대한 타입 scope 종류 compile : 기본 scope. 미입력시에도 기본 적용 모든 상황에서 포함됨 provided : compile과 유사하게 모든 상황에서 수행된다 하지만, 다른 외부 컨테이너에서 기본 제공되는 API인경우 provided로 지정 시 마지막 패키징할 때 포함되지 않음 예를 들면 tomcat에서 기본적으로 servlet api를 제공하기 때문에 servlet api를 provided로 지정하면 패키징시 제외된다. runtime : 컴파일 시에는 불필요 실행시에 필요한 경우. 런타임 및 테스트 시 classpath에 추가 되지만, 컴파일시에는 추가 되지 않음 test : 테스트시에만 사용..
2022.06.20 -
Spring Junit Test를 The import org.springframework.test cannot be resolved할때 에러
별건 아니다 메이븐에 종속성을 추가했는데 org.springframework spring-test 5.3.18 test junit5에서 test를 사용하던 도중 자꾸 cannot be resolve가 떴다 혹시나 해서 scope를 떼고 org.springframework spring-test 5.3.18 를 했더니 잘 된다. 단순히 테스트시에만 사용하도록 쓰인게 아니라 그런가..?
2022.06.20 -
Spring 스프링 java.lang.classnotfoundexception: com.sun.xml.internal.bind.v2.contextfactory 에러 해결 방법
https://hyejin.tistory.com/277 참조
2022.06.09