안녕하세요, 코린이의 코딩 학습기 채니 입니다.
개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.
MVC 구조
Controller
DemoController
/**
* DispatcherServlet이 먼저 받아서 DemoController를 호출!
*/
@Controller
public class DemoController {
@Autowired
private DemoService demoService;
}
@Component를 상속받아 해당 기능을 포함하고 있는 @Controller 어노테이션을 통해 빈으로 등록합니다.
DemoService를 의존주입 받아야하므로, @Autowired 어노테이션을 붙여주었습니다.
Service
DemoService interface
public interface DemoService {
}
DemoServiceImpl
@Service
public class DemoServiceImpl implements DemoService {
@Autowired
private DemoDao demoDao;
}
@Component를 상속받아 해당 기능을 포함하고 있는 @Service 어노테이션을 통해 빈으로 등록합니다.
DemoDao를 의존주입 받아야하므로, @Autowired 어노테이션을 붙여주었습니다.
Dao
DemoDao interface
public interface DemoDao {
}
DemoDaoImpl
@Repository
public class DemoDaoImpl implements DemoDao {
}
@Component를 상속받아 해당 기능을 포함하고 있는 @Repository 어노테이션을 통해 빈으로 등록합니다.
Dto
Dev
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class Dev {
private int no;
private String name;
private int career;
private String email;
private Gender gender;
private String[] lang;
private LocalDateTime createdAt;
}
#5. lombok : boilerplate 대신 작성
pom.xml
<!-- #5. lombok : boilerplate 대신 작성 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
포워딩 처리
Dev 등록 폼 포워딩
DemoController
@Controller
public class DemoController {
static final Logger log = LoggerFactory.getLogger(DemoController.class);
@Autowired
private DemoService demoService;
/**
* value : path에 대한 별칭
* method : 전송방식 - 작성하지 않으면, 모든 전송방식 허용
*/
@RequestMapping(path = "/demo/devForm.do", method = RequestMethod.GET)
public String devForm() {
log.info("{} 요청!", "/demo/devForm.do");
return "demo/devForm";
}
}
@콘솔출력값
INFO : com.ce.spring2.demo.controller.DemoController - /demo/devForm.do 요청!
반드시 key=value로 작성해야하지만, value는 key값을 생략 가능합니다.
여기서 "path" 속성이 value의 Alias로 지정되어있기 때문에 'path'속성 또한 key 값을 생략할 수 있습니다.
"method"는 전송 방식을 뜻하며, 지정하지 않으면 모든 전송방식을 허용합니다.
'Java > Spring' 카테고리의 다른 글
Spring) 사용자 입력 값 처리 (2) - @RequestParam (0) | 2022.08.17 |
---|---|
Spring) 사용자 입력 값 처리 (1) - HttpServletRequest (0) | 2022.08.17 |
Spring) 페이지 나누기 - param변수, root-context/servlet-context/web.xml 설정 (0) | 2022.08.17 |
Spring) Legacy Project 생성 - 버전 최신화하기 (0) | 2022.08.16 |
Spring) Java Annotation + Xml을 통한 context 작성 - IoC, DI 특징 파악하기 (0) | 2022.08.16 |