xml파일을 이용한 설정
1. Maven으로 Java프로젝트 만들기
- maven-archetype-quickstart
- group id, artifact id는 패키지가 될 것이기 때문에 소문자로 지정한다.
- artifact Id는 실제 프로젝트 이름을 기입한다.
2. pom.xml 파일에 JDK를 사용하기 위한 플러그인 설정 추가
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
코드 기입 후 maven update project
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
properties > javacompiler에서 1.8 버전 확인
테스트 파일
- 테스트가 성공하면 성공했다는 메세지와 함께 녹색 막대가 보여진다.
- 나중에 따로 공부해보자
3. UserBean.java 생성
- 예전에는 Visual한 컴포넌트를 Bean이라고 불렀지만, 최근에는 일반적인 java 클래스를 Bean 클래스라고 말한다.
- Bean 클래스의 3가지 특징
- 기본 생성자를 가지고 있다.
- 필드는 private하게 선언한다.
- getter, setter 메소드를 가진다
- getName(), setName() 메소드를 name 프로퍼티(property)라고 한다.
- UserBean.java
package kr.or.connect.diexam01;
//빈클래스
public class UserBean {
//필드는 private한다.
private String name;
private int age;
private boolean male;
//기본생성자를 반드시 가지고 있어야 한다.
public UserBean() {
}
public UserBean(String name, int age, boolean male) {
this.name = name;
this.age = age;
this.male = male;
}
// setter, getter메소드는 프로퍼티라고 한다.
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isMale() {
return male;
}
public void setMale(boolean male) {
this.male = male;
}
}
4. Spring Bean Factory를 이용하여 Bean 객체 이용
1) pom.xml파일을 다음과 같이 수정
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version> 4.3.14.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
- properties는 pom.xml의 dependency 등에서 상수로 사용할 수 있게 해준다. spring은 버전이 다양해서 다른 버전을 사용하고 싶을 때 해당 상수만 바꾸어주면 된다.
- maven spring context으로 구글링하면 dependency 부분을 추가할 수 있다.
2) 추가된 라이브러리를 확인한다.
- 기본 생성자를 가지고 있다.
- 필드는 private하게 선언한다.
- getter, setter 메소드를 가진다
- getName(), setName() 메소드를 name 프로퍼티(property)라고 한다.
package kr.or.connect.diexam01;
//빈클래스
public class UserBean {
//필드는 private한다.
private String name;
private int age;
private boolean male;
//기본생성자를 반드시 가지고 있어야 한다.
public UserBean() {
}
public UserBean(String name, int age, boolean male) {
this.name = name;
this.age = age;
this.male = male;
}
// setter, getter메소드는 프로퍼티라고 한다.
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isMale() {
return male;
}
public void setMale(boolean male) {
this.male = male;
}
}
1) pom.xml파일을 다음과 같이 수정
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version> 4.3.14.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
- properties는 pom.xml의 dependency 등에서 상수로 사용할 수 있게 해준다. spring은 버전이 다양해서 다른 버전을 사용하고 싶을 때 해당 상수만 바꾸어주면 된다.
- maven spring context으로 구글링하면 dependency 부분을 추가할 수 있다.
2) 추가된 라이브러리를 확인한다.
- spring context가 다른 것들을 상속받는 등 관계를 맺고 있는 것들이 있기 때문에 다같이 알아서 받아온다.
3) resouces 소스 폴더 생성
- resouces 폴더는 스프링에게 정보를 줘야할 파일을 여기에 저장한다.
- 소스랑 자바 파일이 섞이면 관리하기 힘드므로 따로 폴더를 만들어 준다.
- src/main 하위에 resouces 폴더 추가 후 xml 파일 생성
4) resources 소스 폴더에 xml 파일을 작성
- applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="userBean" class="kr.or.connect.diexam01.UserBean"></bean>
</beans>
- 가장 바깥쪽 태그(루트 엘리먼트)가 beans 엘리먼트이어야 하고, xml 스카에 대한 설정이 되어있어야 한다.
- bean 태그를 입력했는데, 다음과 같은 의미를 가진다.
kr.or.connect.diexam01.UserBean userBean = new kr.or.connect.diexam01.UserBean();
- spring 컨테이너는 이런 객체를 하나만 생성해서 가지고 있다. 이를 싱글톤 패턴이라고 한다. 자세한건 디자인 패턴을 공부하자.
5. ApplicationContext를 이용해서 설정파일을 읽어들여 실행
- 앞에서 스프링 설정 파일을 작성했으니, 해당 설정 파일을 읽어들이는 객체를 생성해야 한다. 먼저 스프링이 가진 공장을 생성한다.
- ApplicationContextExam01.java
package kr.or.connect.diexam01;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ApplicationContextExam01 {
public static void main(String[] args) {
// bean의 정보를 모두 읽어서 객체를 전부 생성한 후 메모리에 올려놓는다.
// 문제가 발생하면 해당 어플리케이션 종료
ApplicationContext ac = new ClassPathXmlApplicationContext(
"classpath:applicationContext.xml");
System.out.println("초기화 완료.");
// id가 userBean과 일치하는 애를 찾은 후 object 형태로 리턴한다.
UserBean userBean = (UserBean)ac.getBean("userBean");
userBean.setName("kim");
System.out.println(userBean.getName());
UserBean userBean2 = (UserBean)ac.getBean("userBean");
// 싱글톤이기 때문에 참이다.
if(userBean == userBean2) {
System.out.println("같은 인스턴스이다.");
}
}
}
- ApplicationContext를 구현하는 다양한 컨테이너가 존재한다. 그 중 xml파일을 classpath에서 읽어들여서 사용하는 객체가 ClassPathXmlApplicationContext 이다.
- 메인에 들어있는 리소스 폴더에서 xml파일은 자동으로 classpath로 지정된다. 자바 디렉토리에서 만들어진 class와 마찬가지로 bean 디렉토리에 생성되어 있을 것이다.
Author And Source
이 문제에 관하여(xml파일을 이용한 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@doforme/xml파일을-이용한-설정
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
package kr.or.connect.diexam01;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class ApplicationContextExam01 {
public static void main(String[] args) {
// bean의 정보를 모두 읽어서 객체를 전부 생성한 후 메모리에 올려놓는다.
// 문제가 발생하면 해당 어플리케이션 종료
ApplicationContext ac = new ClassPathXmlApplicationContext(
"classpath:applicationContext.xml");
System.out.println("초기화 완료.");
// id가 userBean과 일치하는 애를 찾은 후 object 형태로 리턴한다.
UserBean userBean = (UserBean)ac.getBean("userBean");
userBean.setName("kim");
System.out.println(userBean.getName());
UserBean userBean2 = (UserBean)ac.getBean("userBean");
// 싱글톤이기 때문에 참이다.
if(userBean == userBean2) {
System.out.println("같은 인스턴스이다.");
}
}
}
Author And Source
이 문제에 관하여(xml파일을 이용한 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@doforme/xml파일을-이용한-설정저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)