xml 파일
▶xml 파일에 미리 선언해 놓음
>> 자바 메인 파일에서 new 안쓰고 기존에 만들어 놓은걸 우리가 필요할때마다 씀
▶<xml> 파일에서 데이터 넣어줄 때
>> 자바 클래스파일에 생성자 또는 setter 있어야 함
>> 생성자 있으면 contructor 씀
>> setter 있으면 property 씀
▶ 위에 1,2,3 방법 아래 방식으로 쓸 수 있음
Main 자바 클래스 에서
// 스프링 설정 파일 연결
ApplicationContext context = new
ClassPathXmlApplicationContext ("com/human/basic/ex1_xml1/applicationContext.xml");
// DI 컨테이너에서 빈 가져오기
MessageBean bean3 = context.getBean("ko",MessageBean.class);
bean3.sayHello("홍길동");
MessageBean bean4 = context.getBean("en",MessageBean.class);
bean4.sayHello("john");
// 자바소스에서 new 코딩을 없애고 두 클래스간의 결합도를 낮춰서
// 한쪽 클래스 변경에 의한 새로 컴파일 / 복사 / 시랭을 안해도 될 수 있음
// 1.생성자
// (xml파일에서 bean id랑 같게 쓰고, 어떤자료형타입으로 가져올꺼냐)
MemberBean mb1 = context.getBean("memberBean", MemberBean.class);
mb1.show();
// 2. setter 연결
MemberBean mb2 = context.getBean("memberBean2", MemberBean.class);
mb2.setAge(21);
mb2.show();
// 3. DAO 연결
System.out.println("DAO-------------");
MemberDAO dao = context.getBean("dao", MemberDAO.class);
dao.insert();
// component 연결
// 1,2번 주석 처리하고
MemberBean mb3 = context.getBean("memberBean", MemberBean.class);
mb3.show();
▶ 출력문
▶ 생성자 / setter / DAO | ▶ 1,2 주석처리 후 component / DAO |
생성자------------- name >> 홍길동 age >> 20 message >> 생성자 setter------------- name >> 홍길순 age >> 21 message >> setter DAO------------- 홍길동<20>생성자 |
name >> 홍길동 age >> 20 message >> 생성자 DAO------------- 홍길동<20>생성자 |
▶ xml 파일에서 1,2,3 있어야함 ▶ xml 파일에서 componet-scan은 주석 처리 |
▶ xml 파일에서 1,2,3은 주석처리 ▶ xml 파일에서 componet-scan은 있어야함 |
MemberBean 자바 클래스 파일
▶ 생성자 / setter
@Component // memberBean (첫글자만 소문자로 변경하여 변수로 생성)
public class MemberBean {
private String name;
private int age;
private String message;
// 기본 생성자
public MemberBean() {
System.out.println("기본 생성자");
this.name = "길동";
this.age = 20;
this.message = "아 어렵다";
}
// 생성자
public MemberBean(String name, int age, String message) {
System.out.println("3개의 파라미터");
this.name = name;
this.age = age;
this.message = message;
}
public void show() {
System.out.println("name >> "+ name);
System.out.println("age >> "+ age);
System.out.println("message >> "+ message);
}
// setter
public void setName(String name) { this.name = name; }
public void setAge(int age) { this.age = age; }
public void setMessage(String message) { this.message = message; }
public String getName() { return name; }
public int getAge() { return age; }
public String getMessage() { return message; }
}
MemberDAO 파일
@Component("dao") // id = "dao"
public class MemberDAO {
// (3) 필드 기반 의존성 주입 방식
@Autowired // MemberBean 객체가 빈 컨테이너에 있다면 알아서 연결
private MemberBean member; // = new MemberBean() 생략된 것
// (1) 생성자
public MemberDAO() {
}
public MemberDAO(MemberBean member) {
this.member = member;
}
// (2) setter
public void setMember(MemberBean member) {
this.member = member;
}
public void insert(){
System.out.println(member.getName() + "<" + member.getAge() +">" + member.getMessage());
}
}
'Programming > Java + Spring' 카테고리의 다른 글
[Spring] 게시판 만들기 / 글 목록 가기 (0) | 2022.09.27 |
---|---|
[Spring] 게시판 실습 / 준비 단계 (0) | 2022.09.27 |
[Spring] DI 의존성 주입 (0) | 2022.09.26 |
[Spring] 프레임워크 (0) | 2022.09.26 |
[Java] 형변환 (0) | 2022.07.17 |
댓글