반응형 I LEARNED78 TIL_@Id & @GeneratedValue @Id? - 테이블의 PK(Primary Key)역할을 한다는 것을 나타낸다. - 속성에 직접 @Id를 붙여주면 실행시점에 객체 필드를 통해 접근하게 하는 것이며, - getter를 이용하려면 getter에 @Id를 붙여준다. - 속성에 부여하게되면 getter/setter 없이도 작업이 가능하다. 그러나 setter에 @Id를 붙이면 예외가 발생한다 @GeneratedValue : 주 키의 값을 위한 자동 생성 전략을 명시하는데 사용 선택적 속성으로 generator와 strategy가 있다 strategy : persistance provider가 엔티티의 pk를 생성할 때 사용하며 디폴트값은 AUTO이다 generator : 주로 SequenceGenerator나 TableGenerator 어노테이.. 2022. 8. 11. TIL_@Column #Spring @Column은 객체 필드를 테이블의 컬럼에 매핑시켜주는 어노테이션이다. 여기서 name,insertable, updatable,table을 제외한 나머지 속성들은 DDL 생성 기능을 사용할 때만 사용되는 속성들로 JPA 실행 로직에는 영향을 끼치지 않는 속성들이다. 직접 DDL을 설정하여 DB Table을 구성할 경우 사용할 이유가 없다. Entity만으로 개발자가 DB Table 구조 파악이 가능하다는 장점 위 속성 중 nullable의 경우 Java의 기본 타입(int, long, ...)은 null 값 입력이 불가능 하므로, false를 통해 DB Column에 Not Null 제약 조건을 지정해 두는것이 안전하다. 혹은 직접 DB Column에 Not Null 제약 조건 추가 2022. 8. 7. TIL_@RequestMapping #Spring @RequestMapping? : HTTP Request로 들어오는 url을 특정 Controller 클래스나 메소드로 연결시키는 역할을 한다 Spring웹 어플리케이션에서 가장 자주 사용되는 어노테이션 RequestMapping은 Controller에 있어서 Class에 적용할 수도,특정 Method에 적용할 수도 있다. - 요청 정보를 매핑 - 해당 url이 호출되면 해당 메소드가 호출 - 어노테이션 기반 동작이기 때문에 메소드 이름은 자유 - 방식은 GET,POST,PUT,DELETE @RequestMapping(value="/url",method = RequestMethod."방식") 그렇다면 @RequestMapping 대신 @PostMapping이나 @GetMapping을 쓰는 이유가 무엇일까.. 2022. 8. 6. TIL_ 스프링 IOC 컨테이너 -빈 사용방법 1. @Autowired - 멤버변수 선언 위에 @Autowired → 스프링에 의해 DI (의존성 주입) 됨 @Component public class ProductService { @Autowired private ProductRepository productRepository; // ... } - '빈' 을 사용할 함수 위에 @Autowired → 스프링에 의해 DI 됨 @Component public class ProductService { private final ProductRepository productRepository; @Autowired public ProductService(ProductRepository productRepository) { this.productRepository.. 2022. 8. 5. TIL_ 스프링 IOC 컨테이너 -빈등록 스프링 IoC 컨테이너 DI를 사용하기 위해서는 객체 생성이 우선 되어야 하는데 이것을 생성해주는 것이 스프링이다. 필요한 객체를 생성하여 관리하는 역할을 대신해준다. - 빈(Bean) : 스프링이 관리하는 객체 - 스프링 IoC 컨테이너 : '빈'을 모아둔 통 스프링 IOC컨테이너에 어떻게 빈을 등록하고 사용하는지 알아보자 스프링 '빈' 등록 방법 1. @Component >클래스 선언 위에 설정 @Component public class ProductService { ... } >스프링 서버가 뜰 때 스프링 IoC에 '빈' 저장 @Component 클래스에 대해서 스프링이 해주는 일 // 1. ProductService 객체 생성 ProductService productService = new Pro.. 2022. 8. 5. [자료 구조] 느슨한결합?강한결합? 모두가 좋아하는 사람이 될수없다한들, 좋은 사람이 될수없다는 것은 아니다 공부과정 중에 AllinOneController를 통해 모든 컨트롤 기능을 한곳에 모아두었다가 푸는 작업을 통해 하나의 컨트롤러에 모든 역할을 몰아주었을 때 생기는 문제점에 대해 배웠다. 그러다 "강한 결합" 에 대한 궁금증이 생겨서 "느슨한 결합"과 함께 찾아보게 되었다. 그리고 의존성 주입과 IoC 컨테이너는 Spring의 기본이자 핵심 기능 중 하나라는 것을 알게 되었다. 우선 짧게 보고 넘어가고 싶은 사람들을 위해 강한 결합(Tight Coupling)은 클래스와 객체가 서로 의존하고 있는 것 느슨한 결합(Loose Coupling)은 다른 클래스를 직접적으로 사용하는 클래스의 의존성을 줄이는 것 이라고 할수있는데, 일반적으.. 2022. 8. 5. TIL_ResponseBody #Spring @ResponseBody는 왜 쓸까요? @GetMapping("/body/html") @ResponseBody public String helloStringHTML() { return "" + "" + "" + " Hello, 정적 웹 페이지!!" + ""; } 원래는 View를 보여주나 ResponseBody라고 해주면 View를 제공해 주는 것이 아니라 String내용을 body에 채워준다 만약 View를 통해서 HTML파일을 통해서 내려주는 경우에도 HTML이 내려오는 것이 아닌 텍스트 내용만 내려오는 것이다 그렇다면 왜 ResponseBody를 쓸까? @ResponseBody를 해주면 View를 통과하지 않는다. 즉,템플릿엔진으로 넘기는 것이 아니라 메시지를 바로 body에 넣어주게 된다 2022. 8. 4. 이전 1 ··· 8 9 10 11 12 다음 반응형