Spring Controller

Hyunny ·2023년 8월 10일
0

SPRING

목록 보기
2/14
post-thumbnail

📌 Controller

@Controller : 현재 클래스가 컨트롤러임을 명시

: 요청, 응답 처리 + bean 등록

💛📝 @RequestMapping : 요청 주소에 맞는 클래스/메소드 연결

🙆‍♀️ 연결방법 1)
@RequestMapping("요청주소")
: GET / POST 구분 X (모두 받음, 주소만 맞으면 연결)

🙆‍♀️ 연결방법2)
@RequestMapping(value="요청 주소", method=RequestMethod.GET/POST)
: GET / POST 방식을 구분

📌 Controller 파라미터 전달 방법

1) 메소드 매개변수로 파라미터 전달

2) @RequestParam 어노테이션 이용

3) @ModelAttribute를 이용한 방법

📌 Spring에서 forward하는 법

💙📝 return "jps경로";

: webapp 폴더 기준으로 요청 위임할 JSP 파일 경로를 리턴!
단, servlet-context.xml에 작성된 prefix/suffix 부분을 제외하고 작성! -> View Resolver

📌 instance / Bean

🤍📝 instance : 클래스 -> 객체

: new 클래스명();
new 연산자를 사용하여 개발자가 직접 객체 생성

💜📝 Bean : Spring이 관리하는 객체

: 프레임 워크 (Spring Container)가 객체를 생성하고 관리 -> 이 때 생성된 객체 == Bean


📌 서버 연결 과정

<web.xml> : 배포 서술사/설명서
💭 서버가 켜질 때(배포가 시작될 때) 가장 먼저 읽어들이는 설정 파일

<root-context.xml>
💭 서버가 켜질 때 web.xml이 가장 먼저 읽어들이는 설정 파일
프로젝트 전반적으로 사용할 DB 연결 관련 내용(JDBC, MyBatis,DBCP), AOP, 트랜잭션 처리, 파일 업로드 등을 작성

<servlet-context.xml>
💭 DispatcherServlet 생성 시 필요한 내용을 정의하는 파일
💬 HandlerMapping
: 어떤 요청을 어떤 클래스/메소드로 연결하는지 제어하는 객체
💬 ViewResolver
: Controller에서 반환된 문자열("common/main")앞, 뒤에 경로( /WEB-INF/views), 확장자(.jsp)를 붙여 jsp 파일의 경로를 지정한 후 forward(요청위임)을 하는 객체
💬 component-scan
: @component와 자식 어노테이션을 Bean으로 등록하는 태그

📌 프로젝트 파일 구조

💚📝 Service Interface 사용 이유
1) 프로젝트에 규칙성을 부여하기 위해서
2) 클래스간의 결합도를 약화 시키기 위해서 (객체 지향적 설계)
3) Spring AOP 사용을 위해서

🤍📝 @Service //Service Layer
: 비즈니스 로직(데이터 가공, dao호출, 트랜잭션 제어) 처리하는 클래스라 명시 + Bean 등록

💜📝 @Autowired
: 작성된 필드와 Bean으로 등록된 객체 중 타입이 일치하는 Bean을 해당 필드에 자동 주입하는 어노테이션
== DI (Dependency Infection, 의존성 주입)
-> 객체를 직접 만들지 않고, Spring이 만든걸 주입함 (Spring에 의존)

💛📝 @Repository
: Persistence Layer, 영속성 관련 클래스
== (파일, DB관련 클래스) + Bean 등록 (== Spring이 객체로 만들어둠)

profile
개발 learning ... 📝

0개의 댓글