본문 바로가기
반응형

Spring17

[Spring/JSP] web.xml 에러 / cvc-id.3 : A field of identity constraint 'web-common-servlet-name-uniqueness' matched element 'web-app', but this element does not have a simple type. ⚡️web.xml 오류 스프링 MVC를 위해 web.xml 파일을 설정하는 도중 분명히 잘못된 부분이 없는 것 같은데 계속해서 error in 'web-common_3_0.xsd', cvc-id.3 오류가 발생했습니다 📌 해결 방법 해결 방법은 생각보다 간단했습니다. web-app 태그 xsi:schemaLocation의 링크 부분 java를 Java 로 변경하면 됩니다. 2022. 4. 6.
[Spring/스프링] 스프링 컨테이너, ApplicationContext ⚡️스프링 컨테이너 스프링 컨테이너는 자바 객체를 빈이라는 이름으로 관리합니다. 빈의 전반적인 생명주기와 스프링의 주요 개념인 제어의 역전(IoP), 관점 지향 프로그래밍(AOP)을 이용하여 프로그램을 제작할 수 있도록 자체적으로 다양한 기능을 지원합니다. ⚡️컨테이너의 종류 스프링에서는 BeanFactory와 이를 상속한 ApplicationContext 두 가지 유형의 컨테이너를 제공합니다. 📌 BeanFactory BeanFactory는 스프링 설정 파일에 등록된 빈 객체를 생성하고 관리하는 기본적인 기능만 제공하는 컨테이너입니다. 이 컨테이너에서 핵심은 지연 로딩(Laze Loading) 방식을 사용한다는 점입니다. 컨테이너가 구동될 땐 빈의 정의만 등록해두고 클라이언트의 요청에 의해서만 빈 객체.. 2022. 4. 5.
[Spring/스프링] ComponentScan, XML & Java 사용법 ⚡️ComponentScan 스프링에서 빈을 등록할 때 XML 혹은 JavaConfig에 Bean을 직접 등록시켜주곤 했습니다. 관리해야할 빈이 많아진다면 직접 빈을 등록해주는 작업 또한 많아져 번거롭겠죠? ComponentScan은 직접 클래스 파일을 스캔하는 과정을 통해 의존성을 주입하고 빈을 등록합니다. 📌 컴포넌트 스캔 대상 클래스에 다음과 같은 어노테이션이 선언되어 있을 때 스캔 과정에서 빈으로 등록합니다. @Component : 기본적으로 스프링에서 관리되는 객체임을 표시하기 위해 사용 @Controller : MVC 패턴 중 컨트롤러에 사용, 별도로 @RequestMapping 사용 가능 @Repository : 데이터 입출력 (DAO)에 사용, 예외 작업 제공 @Service : 비즈니스 .. 2022. 4. 5.
[Spring/스프링] 싱글톤 패턴(Singleton pattern) 과 @Scope prototype 목차" data-ke-type="html">HTML 삽입미리보기할 수 없는 소스📒 싱글톤 패턴(Singleton pattern) 과 @Scope prototype📌 싱글톤 패턴public class SingletonPattern { private static SingletonPattern sp = new SingletonPattern(); // 외부에서 생성자를 사용하지 못하도록 private 접근 지정자 사용 private SingletonPattern() {} public static SingletonPattern getInstance() { return sp; } public void print() { System.out.println("싱글톤 패턴입니다"); }}싱글톤 패턴은 클래스의.. 2022. 4. 2.
[Spring/스프링] @Qualifier 구분자, 의존성 주입 시 위치 HTML 삽입 미리보기할 수 없는 소스 ⚡️시작하기 전 스프링을 공부하며 생성자 주입 방식으로 의존성을 주입하는 도중 같은 타입의 빈을 구별하기 위해 코드에 @Qualifier를 사용했습니다. 그런데 이리저리 옮겨봐도 오류가 나는 바람에 한참의 시도 끝에 성공 후, 구글에도 자료가 잘 보이지 않아 저와 같은 오류를 겪을 분들을 위해 글을 남겨봅니다. ⚡️@Qualifier 어노테이션 @Qualifier 어노테이션은 빈을 탐색할 때 같은 타입의 클래스를 @Autowised로 부터 구별할 수 있게 해줍니다. 아래는 Travel 클래스에 Camera 타입의 객체를 주입하려고 할 때 같은 타입이 2개 이상 존재하면 발생하는 오류입니다. @Component public class SonyCamera impleme.. 2022. 4. 2.
[Spring/스프링] @Configuration @Bean 스프링 설정 클래스 생성하기 HTML 삽입 미리보기할 수 없는 소스 ⚡️ @Configuration 어노테이션 / JavaConfig 등록 스프링에서 스프링 빈을 관리하는 설정 방식에는 XML과 JavaConfig 두가지 방식이 존재합니다. 그 중 JavaConfig에서 @Configuration 어노테이션을 사용하게 되면 설정이라는 단어의 뜻 그대로 선언 된 자바 클래스는 스프링 설정을 담당하는 클래스가 됩니다. @Configuration public class ConfigClass { ... } 자바 클래스를 설정파일로 만들어 주었으면 그 안에 객체들을 빈으로 등록해야 합니다. ⚡️ @Bean 어노테이션 / Bean 등록 메소드 레벨에서 사용되는 @Bean은 대게 개발자가 만들지 않는 외부 라이브러리의 객체들을 빈으로 등록할 때.. 2022. 4. 1.
[Spring/스프링] 제어의 역행(IoP)과 의존성 주입(Dependency Injection, DI) ⚡️ 제어의 역행 (IoP) 제어의 역행은 간단히 객체 생성과 의존 관계를 직접 처리하는게 아니라 소스에 의존관계가 명시되지 않도록 컨테이너가 대신 처리한다고 설명할 수 있습니다. 이는 스프링의 핵심 개념이며 IoP를 두 가지 형태로 지원합니다. Dependency Lookup Dependency Injection Dependency Lookup은 컨테이너가 애플리케이션 운용에 필요한 객체를 생성하고 클라이언트는 생성한 객체를 검색(Lookup)하여 사용하는 방식을 뜻합니다. 하지만 이는 실제로 잘 사용되지 않고 대부분 DI를 사용하여 개발하기 때문에 이 글에서는 생략하겠습니다. ⚡️ 의존성 주입 (Dependency Injection) 의존성 주입은 객체 사이의 의존관계를 스프링 설정 파일에 등록된 정.. 2022. 3. 31.
[Spring/스프링] 스프링 프레임워크의 특징, 사용하는 이유 ⚡️ 스프링을 공부하기 전 본격적으로 스프링을 공부하기 전에, 왜 스프링이 주력 프레임워크가 되었고 어떤 특장점이 있는지 알아보려 합니다. ⚡️ 스프링 프레임워크(Spring Framework) 스프링은 엔터프라이즈 비즈니스 컴포넌트를 개발할 수 있는 자바 프레임워크입니다. 스프링이 등장하기 전 자바 기반의 엔터프라이즈 애플리케이션은 대게 EJB(Enterprise Java Beans)로 개발되었습니다. 이 EJB 기술은 많은 기능과 장점에도 불구하고 복잡한 스펙, 개발 및 유지보수의 불편함, 높은 난이도 등 여러 단점때문에 스프링의 등장 이후로는 거의 사용되지 않는 기술이 되어버렸습니다. 스프링의 등장 이후로 EJB가 사용되지 않는다고 했으니 당연히 스프링은 이 단점들을 개선했기 때문에 많은 개발자들에.. 2022. 3. 29.
반응형

오픈 채팅