목록Spring (19)
JAVA를 잡아라!...

@어노테이션 종류 설명 @Component 빈으로 자동 등록될 클래스 지정 스프링 컨테이너가 클래스패스를 스캔해 @Component 붙은 클래스를 찾아 빈을 new @Service 비즈니스 로직을 처하는 서비스 레이어*의 클래스 지정 @Component 어노테이션과 동일하지만, 주로 비즈니스 로직을 담당하는 서비스 레이어의 클래스에 사용 *Service Layer : 비즈니스 로직을 사용하는 컨트롤러단 @Service 사용 장점 1) 가독성 향상 : 개발자가 이 객체가 Service 레이어의 객체임을 빠르게 파악 2) 스프링 컨테이너가 같은 @끼리 메모리 위치를 잘 정해서 관리 (로딩 속도 빨라짐) @Repository 데이터 접근 로직을 담당하는 데이터 액세스 레이어*의 클래스를 지정 @Componen..

최종 프로젝트_Spring Framework 컨테이너 3개 사용 (스프링에서 제공해주는 컨테이너 2개 == 스프링 컨테이너, 루트 컨테이너) #1 컨테이너 종류 및 역할 1. 서블릿 컨테이너 (웹 서버, 톰캣) 내장 서버(설치 xx) Servlet 클래스를 new(생성) 해줌 (ex. FrontController) 2. 스프링 컨테이너 POJO 클래스를 new 해줌 (ex. DAO, DTO, Action류) 코드 내에서 new 역할을 담당하는 컨테이너 3. 루트(최상위) 컨테이너 .jar(라이브러리)를 관리 스프링에서 제공해주다보니까 스프링 컨테이너라고 불리기도함 설정에 대한 이야기를하면 루트 컨테이너를 말한다고 알아들으면 됨 #2-1 XML 설정 파일 : 컨테이너가 구동되려면 설정 파일(.xml)이 필..
제어의 역행 (Inversion of Control, IoC) 객체 간의 의존 관계를 직접 연결하는 대신 컨테이너를 통해 관리하는 방식 어떤 객체를 사용할지에 대한 책임은 프레임워크에게 넘기고, 자신은 수동적으로 주입받는 객체를 사용 제어의 주체가 개발자에서 프레임워크에 넘어감, 제어가 역전됐다는 의미 Spring Framework에서 IoC는 주로 DI를 통해 구현 의존성 주입 (Dependency Injection, DI) DI는 IoC의 한 형태 객체가 자신의 의존성(다른 객체와의 관계)을 직접 생성하거나 관리하지 않고, 외부로부터 주입받는 방식 의존성 주입은 원래 개발자가 했어야하는데, Spring 컨테이너가 진행할 예정 이 의존성 주입은 생성자 주입, Setter 주입 등 다양한 방식으로 이뤄질..

https://spring.io/ #1 Spring Starter Project Import Spring Getting Started Content #2 Name : 프로젝트 이름 Location : 지정해둔 위치 기본 설정 Type : Gradle(부트 방식) / Maven(자바기반 Spring 레거시 프레임워크가 기본제공) Packaging : War(웹 배포) / Jar(자바 아카이브 배포) Group : 프로젝트를 진행하는 담당파트나 회사명 Package : 패키지 경로; com.Group명.Project명 #3 New Spring Starter Project Dependencies .jar를 말하는 것으로 최상위 루트 컨테이너 라이브러리를 여기서 다운받아서 관리할 수 있음
[ 스프링 컨테이너_ApplicationContext ] 1. 컨테이너 설정파일 확장자 : .xml 서블릿 컨테이너 : web.xml 스프링 컨테이너 : applicationContext.xml 2. applicationContext.xml 루트 엘리먼트 : 루트 엘리먼트(root element) : XML 문서의 최상위 요소. 즉, XML 문서의 시작과 끝을 나타내는 요소로서 다른 모든 요소는 루트 엘리먼트 안에 포함되어야 함. 보통 루트 엘리먼트는 하나의 XML 문서에 한 번만 나타남 applicationContext.xml 파일에서는 가 주로 루트 엘리먼트가 됨 이 파일에서 설정이 작성되는 주요 위치이기 때문에 루트 엘리먼트의 역할을 하게 됨 따라서 태그 사이에 스프링의 각종 설정이 태그로 작성됨 ..

[ 결합도 - Coupling ] : 모듈 간의 상호 의존성을 나타내는 개념 높은 결합도는 한 요소의 변경이 다른 요소에 미치는 영향이 크다는 것을 의미, 유지보수 불리 따라서 낮은 결합도가 유지보수성을 향상시키는데 도움을 줌! 결합도를 낮추기 위한 방법 ↓ 1. 인터페이스 활용 : DTO : 객체가 변경되어도, 메서드를 추가 변경하지 않아도됨 > 다형성 구현! Interface - Phone.java Class - IPhone.java , GalaxyPhone.java 2. 팩토리 패턴 활용 : HandlerMapping : 코드에 new가 있었는데, new가 없어짐 >>> 코드에 new가 없을수록 결합도가 낮음 Spring 컨테이너 코드에 BeanFactory 타입은 무조건 있음 원래 객체를 받아오려..