일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 문자열
- html
- Controller
- 상속
- Java
- string
- Database
- Thymeleaf
- Uipath
- jquery
- Array
- React
- Oracle
- 조건문
- MVC
- Scanner
- Eclipse
- JDBC
- rpa
- API
- 이클립스
- 배열
- 자료구조
- SpringBoot
- spring
- jsp
- Board
- mysql
- View
- db
- Today
- Total
목록Study ♪( 'ω' و(و" (150)
유정잉
@Controller와 @RestController는 둘 다 스프링 MVC 애플리케이션에서 사용되는 어노테이션으로, HTTP 요청을 처리하는 컨트롤러를 정의할 때 사용됩니다. 그러나 두 어노테이션은 약간의 차이가 있습니다. [ @Controller ]@Controller 어노테이션이 붙은 클래스는 전통적인 스프링 MVC의 컨트롤러로 간주됩니다.주로 HTML 뷰를 반환하는 데 사용됩니다.메서드가 String, ModelAndView, View 등과 같은 HTML 뷰를 반환하도록 정의될 수 있습니다.기본적으로 데이터를 JSON이나 XML 형식으로 반환하지 않습니다.import org.springframework.stereotype.Controller;import org.springframework.web.b..
@Componentscan과 @Configuration + @Bean은 비슷한 목적을 가지고 있지만 약간 다른 방식으로 작동합니다. [ @Componentscan ] 이 어노테이션은 Spring에게 특정 패키지 이하에서 컴포넌트를 찾아서 Bean으로 등록하라고 지시합니다. Spring은 해당 패키지와 그 하위 패키지를 스캔하여 @Component, @Repository, @Service, @Controller 등과 같은 어노테이션이 붙은 클래스를 찾아 빈으로 등록합니다.구성 요소 스캔은 스프링이 클래스 경로에서 구성 요소를 찾아서 자동으로 빈으로 등록하는 메커니즘입니다. 구성 요소는 주로 @Component 어노테이션이 붙은 클래스들을 말합니다. 그러나 @ComponentScan은 @Component 외..
모델 어트리뷰트(Model Attribute)와 리퀘스트 파라미터(Request Parameter)는 웹 애플리케이션에서 데이터를 전달하는 방식에 있어서 차이가 있습니다. [ 모델 어트리뷰트 (Model Attribute) ]모델 어트리뷰트는 컨트롤러에서 뷰로 데이터를 전달하는 데 사용됩니다.주로 컨트롤러에서 처리한 결과나 데이터를 뷰에 전달할 때 사용됩니다.Spring MVC의 Model 객체를 통해 뷰로 전달됩니다.뷰 템플릿(JSP, Thymeleaf 등)에서는 모델 어트리뷰트에 접근하여 화면에 데이터를 표시합니다.@Controllerpublic class MyController { @GetMapping("/example") public String example(Model model) {..
[ 다양한 의존관계 주입 방법 ]1. 생정자 주입 2. setter 주입(=수정자 주입) 3. 필드 주입 4. 일반 메서드 주입 1) 생성자 주입 : 생성자를 통해서 의존 관계를 주입 받는 방법 특징 : 생성자를 호출 시점에 딱 1번만 호출 되는 것리 보장 됨. "불변, 필수" 의존관계에 사용 (=공연 중간에 배우가 바뀌면 안 됨, final) 중요 : 만약 생성자가 딱 1개만 있다면 @Autowired를 생략해도 된다 !! (생성자가 2개 이상이면 안 됨)@Componentpublic class OrderServiceImple implements OrderService{ private final MemberRepository memberRepository; //final이 있으면 무조..

@ComponentScan : 클래스를 스캔해서 스프링 빈으로 등록해줌 (기존AppConfig와 다르게 @Bean으로 등록 X)컴포넌트 스캔을 사용하면 `@Configuration` 이 붙은 설정 정보도 자동으로 등록되기 때문에, AppConfig, TestConfig 등 앞서 만들어두었던 설정 정보도 함께 등록되고, 실행되어 버린다. 그래서 `excludeFilters` 를 이용해서 설정정보는 컴포넌트 스캔 대상에서 제외했다. 보통 설정 정보를 컴포넌트 스캔 대상에서 제외하지는 않지만, 기존 예제 코드를 최대한 남기고 유지하기 위해서 이 방법을 선택했다. 1) AutoAppConfig에 @ComponentScan 등록package hello.core;import org.springframework.c..
[

▶▷ 이전 시간에는 AppConfig를 사용해서 직접 조회했지만, 지금부터는 스프링 컨테이너를 통해서 필요한 스프링 빈(=객체)를 찾는다. applicationContext.getBean() 메서드를 사용해서 찾을 수 있다. 1) AppConfig 클래스에 애플리케이션 설정 정보를 @Configuration 설정, 각 메서드에 @Bean 설정 -> 스프링 컨테이너에 등록 됨package hello.core;import hello.core.discount.DiscountPolicy;import hello.core.discount.FixDiscountPolicy;import hello.core.discount.RateDiscountPolicy;import hello.core.member.Membe..

[ 비즈니스 요구사항과 설계 ] - 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) - 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용. (나중에 변경 될 수 있다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고싶다. 최악의 경우 할인을 적용하지 않을 수 있다. (미확정) 요구사항을 보면 회원 데이터, 할인 정책 같은 부분은 지금..

[ AOP란 ? ]AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다.여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. [ AOP가 필요한 상황 ]모든 메소드의 호출 시간을 남긴다면 ? 메서드가 1000개라면 메스데 1000개의 시작과 끝에 다 호출 메서드를 넣어야 함 근데 초단위로 했더니 갑자기 밀리세컨드로 다시 바꾸래 ! 그럼 또 더 복잡해진다 !! 그래서 AOP에서 호출 시간을 남기는 메서드를 만들어서 각각의 Controller & Service & Repository에 적용해주면 됨즉, A..
1) 스프링 컨테이너와 DB까지 연결한 통합 @Test (그치만 통합보단 순수한 단위 Test가 더 좋은 테스트임 !) @SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행한다. @Transactional : 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다. 즉, 전에 배웠던 @Aftereach clear가 필요 없음 package hello.hellospring.service; import hello.hellosprin..