728x90
반응형

SpringFramework/BASIC 38

@Component,@Controller @Repository,@Service 의 bean id 설정/ @Component 어노테이션을 상속받은 Component기능의 어노테이션들을 bean 객체화 등록할때의 bean id설정법

@Controller public class Controller3 {} 일반적으로 우리가 Controller 어노테이션을 등록하여 bean등록을 하게되면 등록된 bean id는 해당 클래스의 클래스명 첫글자를 소문자로 변경되어 bean의 id로 등록시켜줍니다. 그렇다면 컨트롤러를 bean으로 등록할때 bean아이디를 임의로 지정해주고 싶을때는 어떻게할까요 이때는 @Controller 어노테이션 옆에 ("지정할 bean id명") 매개값으로 지정할 bean id명을 선언하합니다. @Controller("c3") public class Controller3 {} @Repository와 @Service로 등록할 빈에대한 id명도 똑같이 지정할 수 있습니다. 그렇다면 언제 이런걸 사용하게되냐 ? 앞서 우리가 자..

스프링의 어노테이션의 특징과 컨트롤러의 공통 URL 설정

컨트롤러 클래스를 만들었을 때 클래스 선언된 곳 위에 @Controller라고 선언해줍니다. xml에서 으로 빈 등록을 해주는것을 대신하는 역할을해줍니다. 자동으로 빈 등록을하는 어노테이션은 네가지가 있습니다. @Component, @Controller , @Service , @Repository 우리가 Service클래스 를 만들때는 그것을 xml을이용해서 빈등록을 할 필요가 없이 @Service를 선언해주면 됩니다. DAO일때도 마찬가지로 xml이 아닌 해당 클래스 선언부 위에 @Repository어노테이션을 선언 해 주면 됩니다. 일반적인 클래스에도 이런식으로 bean으로 등록 시켜주도록 식별할수있게 해주는 참조 대상의 어노테이션을 사용하여 빈으로 등록을 할 수 있지만, 일반적인 클래스인데 Serv..

요청 파라미터 처리법 : Sevlet 자바API request.getParameter() 과 SpringAPI 어노테이션 @RequestParam / command객체 생성 방식 + @ModelAttribute

요청파라미터란?(네임파라미터) 클라이언트가 서버로 전송하는 데이터 고객이 뷰페이지에서 입력,선택한 자료들을 넘겨받아 작업하기 위해 먼저 서버로 전송하기 위한 데이터 입니다. 로그인 아이디,패스워드 게시글 글제목, 작성자, 글번호, 글내용 회원가입 이름,생년월일,아이디.비밀번호,이메일,폰번호,주소 자료실 글제목,작성자,글번호,글내용,첨부파일 상품페이지 종류, 수량, 옵션 결제페이지 배송지정보(받는분 성함, 핸드폰번호, 주소록, 배송메시지) 이런 데이터들을 담는 변수가 요청 파라미터변수 입니다. get방식같은경우엔 주소창에 노출됩니다 ?변수=값 post방식은 request Body request객체의 안쪽에 숨어서 서버로 들어가는겁니다. (request객체에 Body본문 내용을 심어서 보냅니다) 서버는 전송..

MVC Model1,2 및 웹 Spring의 구동 원리

MVC(Model-View-Controller)패턴이란? 전통적인 GUI(Graphic User interface) 기반의 애플리케이션을 구현하기 위한 디자인 패턴입니다. MVC 구조는 사용자의 입력을 받아서 입력 에 대한 처리를 하고, 그 결과를 다시 사용자에게 표시하기 위한 최적화된 설계를 제시해 줍니다. 웹 애플리케이션에는 서블릿/JSP와 함께 일반 자바 클래스도 같이 사용합니다. 가장 이상적인 구조 자바 클래스 – 데이터베이스와 통신/주요 비즈니스 로직 구현 - 비즈니스 로직, 주로 데이터베이스와 통신하는 DAO(Data Access Object)가 존재 서블릿 – 사용자의 요청 처리/제어 컨트롤러 구현 - 컨트롤러, 사용자로부터 요청된 데이터를 검증하고 모델을 호출한 후 뷰에 데이터를 보내 응답..

자동 스캔 명령태그 / 자동 의존성 주입 어노테이션 context:annotation-config @Autowired/@Qulifier/@Resource/@Inject

의존 객체 자동 주입이란? 먼저 재밌고 쉽게 이야기로 비유해보자면 호텔이 레스토랑이 필요하며 의존성관계를 가지고있습니다. 레스토랑은 세프가 필요하고 둘은 또 의존성관계를 가지고 있습니다. 실제로 이것에 대한 주입 명령을 xml설정파일에서 하고있습니다. constructor-arg와 property를 사용하여 xml 설정 파일에서 컨테이너로 직접 주입명령을 등록 하고 있습니다. 레스토랑은 세프가 필요하니까 세터로 이렇~게 주입하면된다. 라고 설정을 기록하고 있지만, 우리가 자동주입이라는 기능을 사용하게 되면 bean 등록만 하면 됩니다. 호텔하나 등록해놓고 레스토랑,세프를 단순하게 '등록만'합니다. "야 컨테이너에 호텔,세프,레스토랑 있거든? 너 딱보면 몰라? 호텔에 레스토랑 필요한거? 레스토랑에 세프 필..

싱글톤타입/프로토타입 Bean객체의 범위

우리가 컨테이너에 Bean 객체 등록을 해놓고 컨테이너에서 필요한 객체들을 꺼내서 쓸때 똑같은 Bean 여러개를 getBean()한다면 과연 그 객체는 같은 객체를 여러개를 얻을수 있을까 하나만 얻을수있을까 에 대해서 이야기 해 봅니다. 객체가 만약 하나만 관리가 된다면 우리는 이것을 싱글톤이라고 부릅니다 객체가 여러개 관리가 된다면 프로토타입이라고 부릅니다 우리가 직접 new() 연산자를 사용하여 객체를 생성한다면 다른 어떤장치를 해놓지 않았을때 당연히 프로토타입으로 생성이 됩니다 하지만 우리가 getBean()으로 객체를 컨테이너에서 얻어온다면 어떤타입으로 나올까? 스프링 컨테이너 방식으로 객체를 얻을때, 과연 싱글톤타입으로 관리가 되는가 프로토타입으로 관리가 되는가에 대해서 알아보겠습니다. Pers..

DI 의존성 주입 - Setter()

Setter를 통한 의존성 주입을 실습해보도록 하겠습니다. DataBaseInfo 클래스 생성 후 필드와 set,get메서드를 만듭니다. public class DataBaseInfo {//DB에서 필요한 정보들을 저장하는 객체 private String url;//DB가 서버 어디에 위치해있는지에 대한 url, 서버의 주소 private String uid;//사용자 계정명 private String upw;//사용자 비밀번호 //private -> 생성자 혹은 setter로 초기화 public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUid() { return ui..

DI 의존성 주입 - 생성자

[DI와 IOC] JAVA 의 Class 상속 / Interface 를 이용한 추상화를 기반으로 하는 개발 방법 Spring은 아래 DI/IoC 를 강력하게 지원하는 프레임워크 쉽게말해서 Ioc는 제어의 역전입니다. 기존에 우리가 필요할 때 마다 마트에가서 장을봐오는게 아니라 필요한게 있다고 미리 얘기해두면 따로 장을봐오는 사람이 있으며 장봐온것을 계속 뽑아서 쓰는것 이것을 바로 제어의 역전이라고 할수 있습니다. DI는 IoC패턴에 구현방법중 하나입니다. 주입이라는 것은 미리 준비된 객체를 넣어주는것 입니다. 스프링컨테이너에 미리 등록해놓은 bean들 하나하나의 객체들은 보통 의존적인객체를 등록합니다. 의존적인객체 즉, A객체가 B객체 없이 동작이 불가능한 상황을 의존성이있다, 의존관계이다, 두 클래스가..

Maven프로젝트 생성 및 pom.xml 정리 및 설정 Maven의 개념 - Maven Repository/Maven폴더구조

Maven : 빌드하는 도구중 하나 (자바프로젝트를 빌드해주는 서버에서 돌아갈 수 있도록 빌드해주는 도구중 하나) Maven의 핵심기능 : 필요한 라이브러리를 네트워크를 통해서 자동으로 다운받아주는 기능 Maven Repository라는 저장소 존재 합니다 → 라이브러리 개발자들이 미리 등록해놓으면 pom.xml이그것을 찾아 프로젝트에 포함시켜줍니다. 설정 코드를 통해 바로 다운받을수 있도록 빌드도구 메이븐을 사용합니다 1. 구글검색창에 MavenRepository 검색 2. mvnrepository.com 3. 검색창에 spring-context 검색(스프링의 핵심모듈) Maven Project를 생성해 보도록 하겠습니다. file-new-create a Maven Project Create a sim..

스프링 프레임워크의 기본 개념 정리

스프링프레임워크 라는게 무엇인가 왜 등장했고 왜 사용하는가 어디에서 주로 사용하는가 Maven이라는 저장소는 무슨일을 하는가 스프링 프레임워크(SpringFramework) 스프링 프레임워크는 현재 5가 최신버전이며 4버전을 현재까지 가장 많이 사용하고 있습니다. 4버전 부터는 RestAPI기능이 추가되었습니다 RestAPI란 의존 환경이 하나의 백엔드 서버를 두고 많은 클라이언트들이 붙게됩니다, 웹 브라우저가 될수도있고 안드로이드폰, 아이폰이 될수도 있습니다. 그래서 하나의 백엔드를 쓰기위해 사용되는 API입니다. 스프링에는 4버전부터 RestAPI를 구축할 때 사용할 수 있도록 RestController라는 기능이 도입되었습니다. 5버전부터 Reactive앱을 만들기위한 기능들이 추가되었습니다. 스프..