본문 바로가기

java

(5)
Spring 기본 Bean조회하는 법 빈 조회 정리 스프링 컨테이너에 등록 된 빈을 조회는 방법에 대해 알아보겠습니다. AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class) //Appconfig.class어노테이션 기반 config클래스 위와 같이 스프링 컨테이너 객체를 생성해 줍니다. 1.모든 빈 조회 string[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { Object bean = ac.getBean(beanDefinitionName); } 위와 같이 getBeanDefinitionNam..
Spring ApplicationContext? 스프링 컨테이너란? ApplicationContext를 스프링 컨테이너라고 칭합니다. beanFactory도 있지만 사용을 잘안하기에 ApplicationContext를 주로 스프링 컨테이너라고 합니다. 여기서 스프링 컨테이너는 자바의 객체들을 관리하는 공간 ApplicationContext는 인터페이스이므로 다형성을 가지고 있습니다. 스프링 컨테이너의 생성 방식은 아래와 같습니다. //애노테이션 기반 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Config.class); 위의 코드는 애노테이션 기반의 자바 클래스로 컨테이너를 생성하는 방식이며 이외에도 XML이나 다른 방식으로 생성 할 수 있다고 합니다. 스프링 컨테이너의..
Spring boot jpa 연관 관계 알아보기 @OneToMany,@ManyToOne 공부 jpa에서 연관관계 방향으로는 1.단방향 2.양방향으로 나눌 수 있습니다. -단방향은 한쪽에서 다른 한쪽을 참조 하지 않으면 단방향이 됩니다. -양방향은 서로 다른쪽을 참조하고 있을때 양방향 관계가 됩니다. 이는 데이터 베이스에서는 하나의 외래키로 조인을 하면 되므로 양방향 단방향이 의미가 없으나 객체에서는 한쪽이 다른한쪽을 참조를 하지 않는다면 단방향 양방향으로 나뉘게 됩니다. 예시를 보면 아래와 같이 Order enitiy에 Orderitem이 일대다 관계로 성립하고 있을때 데이터 베이스에서는 일대다 중에 다에 외래키를 지정하므로 (자식테이블에 fk키 지정) Order객체와 OrderItem 객체도 위와 같이 관계를 지정해 주어야 합니다. 예제1 Order @Entity @Table(name = "o..
Spring boot devtools 사용법 automatic restart 변경부분 자동 적용하기 spring boot devtools 라는 라이브러리를 사용 해볼 것입니다. spring boot devtools 라는 라이브러리는 spring boot 환경에서 사용자의 편의성을 위한 기능등을 제공하는데 그중에서 수정한 파일 하나만 컴파일해도 적용되는 AUTOMATIC RESTART 기능을 사용해 보겠습니다. 라이브러리 적용법 1.build.gradle에 아래 항목 입력 implementation 'org.springframework.boot:spring-boot-devtools' 2.gradle 버튼 클릭 3.기존의 소스 실행 4. text를 안녕하세요 -> 안녕하세yo로 변경하면 기존의 소스에서는 이미 실행시킨 서버를 죽이고 다시 빌드를 해야 하지만 devtools를 사용하면 그 과정 없이 수정된 ..
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test 오류 해결 원본소스와 테스트코드의 소스의 위치가 서로 달라서 생기는 문제로 원본소스의 위치와 테스트코드의 위치를 일치 시켜주면 해결된다. 아래처럼 경로가 다르면 오류가 뜸 원본소스와 test코드를 같은경로로 일치시켜주면 해결됨