공부 61

스프링 생명 주기(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..

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

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..

자바 학생 등급 출력하기 if문과 삼항연산자 이용 2가지 방법

점수를 입력받으면 점수에 해당하는 알맞은 등급을 출력해주는 프로그램을 만들어보세요. 90점 이상 : A 80점 이상 : B 70점 이상 : C 60점 이상 : D 그 외 : F ※ 유요한 점수는 0 ~ 100점 입니다. [if문 버전] 1. while문을 이용하여 학생의 점수가 0점과 같거나 크고 100점과 같거나 작은지 검사를 해주는데 조건을 잘 보면 0이하 이거나 100이상 일 경우에 와일문이 계속 돌며 0이상 100이하의 숫자가 들어오면 while문이 false가 되며 반복이 멈추고 score에 조건에 맞는 점수가 들어가게된다 2. if문을 이용하여 90과 같거나 클경우 A등급 으로 부터 시작하여 else if로 60과 같거나 클때까지를 조건으로 넣어두고 60점 미만일 경우에는 F등급이 되는것이다 ..

공부/Java 복습 2021.08.25

스프링 프로젝트 생성해보기

필요한 모듈을 명시하는 곳이다 실재로 만든 프로젝트가 빌드될때에 필요한 명령어들 자바 resources파일 즉 스프링 컨테이너(IoC)안에 필요한 객체들을 생성해두는데 이곳에 객체(bean) 에 아이디를 명시해주고 클래스 명을 적어둔다면 new를 이용해 생성하지 않아도 메모리에 로딩이된다(컨테이너 안에) #resources프로젝트 생성 방법 resources파일을 클릭하고 outhor에서 xml파일을 찾아 파일 이름을 적고 만들어 준다. #xml파일 설정방법 1. bean의 id는 내가 적고싶은 이름을 넣어주면된다. 2. class명은 패키지명부터 풀네임으로 적어주어야 한다 #스프링 컨테이너로의 접근 방법 1. GenericXmlApplicationContext클래스를 이용하여 컨테이너에 접근한다 Gen..

스프링 프로젝트 생성

개발환경 1.자바 2.환경변수 설정 (javac.exe가 내가 만든 코드를 컴파일하여 jvm에서 실행시켜주는데 다른 디렉토리 에서도 실행할 수 있도록 하기 위해 환경 변수(Path)에 bin경로를 등록 한다. 3.이클립스 #스프링 프로젝트 생성 Maven을 이용하여 스프링 프로젝트를 생성하는 방법 코딩 > 빌드 > 실행되어지는 프로그램 (Maven빌드에 해당) #이클립스 maven프로젝트 생성 방법 1.프로젝트 outhor을 눌러 maven을 검색 후 maven프로젝트를 누르고 next를 클릭 2.저장소는 디폴트 로케이션으로 체크 3.Group id 전체적인 큰 프로젝트의 id를 적는것 4.Artifact id는 현재 만들고있는 프로젝트의 이름 (3,4에 대한 내용은 좀 더 나중에 자세하게 다루도록한다)..

728x90