분류 전체보기 133

어노테이션을 이용한 스프링 설정 2.

Java 파일을 분리하여 관리하는 법을 알아보자 (기능별로 class를 나누어 관리하는 방법이라고 볼 수 있다) DTO, DAO, 서비스 관련 기능으로 보통 3가지 방법으로 나뉘어진다고 한다. MemberConfig1에는 dto MemberConfig2에는 dao MemberConfig3에는 서비스 관련 기능 으로 나누어 뒀다. 이때에 MemberConfig3에서 MemberConfig2에 메서드를 참조해야 하는데 사용할 수 있는 방법은 @Autowired(의존객체 자동 주입)를 사용할 수 있다 이제 이 클래스들을 사용하려면 스프링 컨테이너에 3개를 다 넣어야 하는데 이런 형식으로 넣어주면 된다. 위의 방법이 마음에 들지 않는다면 @Import({MemberConfig2.class, MemberConfi..

어노테이션을 이용한 스프링 설정방법 1.

스프링 설정파일 제작을 JAVA파일로 제작할 수 있는 방법에 대해서 알아보자. 1. class를 하나 만들어준다 2. @Configuration이라는 어노테이션을 사용하여주는데 클래스의 바깥쪽에 사용해준다 @Configuration public class Main{ } (스프링 컨테이너를 xml파일을 대신해 생성할 수 있어야한다는걸 명시해주는 어노테이션) 3.메소드를 만들어 사용한다 xml에서는 위와같이 빈 객체를 생성한다 그러나 java파일은 아래와 같이 메소드를 만들어야 한다. @Bean public StuderntDao studentDao(){ return new StudentDao(); } 메소드에 이름은 빈태그의 아이디 값과 같고 반환형은 객체의 데이터 타입과 같고 리턴타입은 xml태그와 동일한..

스프링 생명 주기(Life Cycle)

컨테이너와 빈이 언제 생성되고 소멸하는지 알아보자 # 스프링 컨테이너 생명주기 GenericXmlApplicationContext (객체명) = new GenericXmlAppicationContext("classpath:어딘가.xml"); 1.이 객체를 생성하는 순간 스프링 컨테이너가 만들어진다(생성시점) 생성되어지는 순간 빈들이 같이 생성된다 즉 컨테이너와 빈의 생성시점은 동일하다고 볼 수 있다. 2. getBean()을 이용한 빈 객체 이용 3. 컨테이너를 close(); 를 이용하여 소멸 이때에 컨테이너 안에있는 Bean객체도 같이 소멸 (메모리에서 날라간다.) 즉 빈 객체에 생명을 주는것은 스프링 컨테이너의 생명주기와 같다 # InitializingBean, DisposableBean 사용하기 ..

의존 객체 선택

오토와이어드를 썻을때에 동일한 데이터 타입의 빈 객체가 여러개 있다면 스프링 컨테이너에서는 누구를 주입해줘야 할지 했갈려한다 그렇기에 개발자가 선택을 해줘야한다. (자동 주입 대상 객체를 판단하지 못할경우 Exception발생) @Qualifier Qualifier 태그를 사용할 경우에 (예선통과자 우선자) 동일한 객체가 있을때에 어떤것을 먼저 사용하겠다 라고 명시하고 속성값을 넣어준다 @Injection 인젝션은 오토와이어드와 거의 비슷하게 어노테이션을 이용해서 의존 객체를 자동을 주입을 할 수 있다. 그러나 차이점이 있다면 오토와이어드의 경우 required속성을 이용해서 의존 대상 객체가 없어도 익셉션을 피할 수 있지만, 인젝션의 격우 required속성을 지원하지 않는다. (required란 re..

의존객체 자동 주입

# 의동객체 자동 주입이란 스프링 설정 파일에서 의존 객체를 주입할때 또는 태그로 의존 대상 객체를 명시하지 않아도 스프링 컨테이너가 자동으로 필요한 의존 대상 객체를 찾아서 의 대상 객체가 필요한 객체에 주입해 주는 기능이다. @Autowired 주입하려고 하는 객체의 타입이 일치하는 객체를 자동으로 주입한다. 컨테이너에 담겨있는 많은 빈 객체중에 객체 타입을 확인하여 자동으로 넣어준다. 라는 태그를 주어야 한다 이걸 사용하기위해서는 몇가지 네임스페이스와 스키마를 명시해 주어야한다 메서드, 프로퍼티, 생성자에 모두 사용이 가능하나 단 프로퍼티나, 메서드는 디폴트 생성자를 명시를 해줘야 한다. (이부분도 오타를 방지하기위해 기존의 것 에서 복붙을 이용하자) @Resource 객체의 동일한 이름을 확인하여..

스프링 설정 파일 분리

스프링은 많은 코드가 하나의 xml파일에 담겨질수 있기때문에 너무 길어져 가독성에 문제와 관리에 문제가 생길수 있기 때문에 효율적으로 파일을 분리하여 관리하는 방법에 관한 내용이다. 학사관리 시스템이 있다 이 시스템을 구성하는 xml파일에는 dao객체, 서비스객체,데이터베이스와 관련된 객체, 학사관리 시스템의 인포메이션 시스템을 담은 객체가 있다 이걸 한곳에 모아둔다면 정말 긴 코드가 되어 가독성이 떨어지고 관리가 힘들어 질 수 있다 그렇기에 이것을 기능별로 3가지로 분리한 것이고 분리를 하는것은 프로그래머의 몫 이라고 한다. 1. dao객체를 만드는 파일 2.데이터 베이스와 관련된 부분만 떼어내어 만든 파일 3.시스템을 관리하는 서비스기능이 있는 파일 분리한 파일은 배열을 이용하여 넣어주면 깔끔하다 S..

Advertising Frame 주요 기능 설명 1.

광고 프레임은 추천도서와 신작도서를 보여주는 프레임이다. 추천과 신작은 버튼이며 버튼을 누르면 노란색으로 바뀌게 만들어뒀고 각 버튼을 누를때에 타이틀명도 바뀌며 각 버튼의 이름에 맞는 패널이 불려오게 된다. 버튼은 2개뿐이기 때문에 boolean타입을 사용하였고 창은 계속 새롭게 불려올 필요가 없기에 dispose()를 이용하여 끄지 않고 setVisible() 을 이용하여 안보이게 숨기기만 하였다. [NewBookPanel()]은 신간도서 패널을 만들어주는 클래스이고 dao에서 listNewBook을 출간일 순서대로 나오게 해뒀기에 새로운 책순으로 나오며 대여상태가 "N"이면서 책의 이미지가 등록되지 않은책("./image/NoBookImage.PNG")은 나오지 않게 해두었고 (책의 이미지가 없을시에..

스프링 다양한 의존 객체 주입 방법

1. 생성자를 이용한 의존 객체 주입 (bean 태그를 이용하여 dao객체를 생성후에 constructor-arg ref="studentDao" 를 참조해라 라고 명시해준다) 2.setter를 이용한 의존 객체 주입 public void setJdbcUrl(String jdbcUrl) { this.jdbcUrl = jdbcUrl; } 자바에서는 이런식으로 setter을 이용하였다면 스프링에서는 이런 형식으로 이용해준다. property 태그안에 set을 때고서 소문자로 변경후 name 속성에 속성 값으로 넣어주고 매개변수로 들어온 값을 value속성에 속성 값으로 넣어 이용하여준다 2-1 public void setDevelopers(List developers) { this.developers = de..

스프링 DI(Dependency injection) 의존 주입

DI는 스프링만에 기능은 아니며 프로그래밍을 하는 방법중 하나이다. 배터리 일체형, 배터리 분리형 의 2종류 장난감이있는데 일체형은 배터리가 떨어지면 새로 장난감을 구입해야 하는 최악의 장난감이고 분리형은 배터리가 떨어지면 배터리면 교체하면된다 둘중 누가 효율적이냐 하면 당연히 후자이다 이것을 프로그램적으로 생각할때에 객체가 모든것에 엮여있다면... 예를들어 계산기로 표현하면 덧셈,뺄셈,나눗셈 기능 등... 이있는데 나누기는 소수점이 2자리만 표현되는데 나중에 계산기의 기능을 원하는 클라이언트가 와서 소수점 5자리로 바꿔달라 할때에 배터리 일체형처럼 묶여있다면 프로젝트를 다시 만들어야하는 수고를 겪어야 하는데 객체가 분리되어있다면 나눗셈의 객체부분만 새로 개발하여 바꿀수 있다. (이걸 프로그램의 유연성 ..

스프링 프로젝트 직접 만들어 import하기

실무에 나간다면 프로젝트마다 스프링 프로젝트 생성방법이 큰 맥락은 같지만 조금씩 생성 방법이 다를 수 있기 때문에 다른 방법도 알아두면 좋다. 직접 xml파일을 만들어 이클립스에 import하기 1.이클립스의 스프링 프로젝트들이 저장되는 폴더로 이동한다 2.원하는 이름으로 파일을 하나 만들어준다. 3.src -> main -> java, resources 파일을 순서대로 만들어준다 (프로젝트 폴더 안쪽에 src, src안쪽에 main, main안쪽에 java와 resources폴더를 만들어준다 4.pom.xml파일 생성 (실습은 notepad++ 라는 편집기를 사용해 보았습니다) 5. 을 써두고 프로젝트 파일밑에 저장하여주고 저장할때에 이름을 pom.xml이라고 저장해준다. 6.다른 프로젝트 pom.xm..

728x90