Java 관련/Spring Legecy

    [Spring] DI / IoC (Bean 객체 생성_06) - 객체 참조(ref)

    [Spring] DI / IoC (Bean 객체 생성_06) - 객체 참조(ref)

    패키지 구조 Emp.java package com.test04; public class Emp { private String name; private int salary; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; } @Override public String toString() { return "이름 : " + name + "\t 월급 : " + salary; } } Developer.java pac..

    [Spring] DI / IoC (Bean 객체 생성_05) - construct-arg와 property 동시 사용도 될까?

    [Spring] DI / IoC (Bean 객체 생성_05) - construct-arg와 property 동시 사용도 될까?

    construct-arg와 property를 혼합해서 사용 할 수 있을까요? 경우에 따라서 있다라고 할수 있습니다. 그러면 코드 예시를 통해 어떤식으로 같이 사용 할 수 있는지 알아보겠습니다. ​ ​ 패키지 구조 ​ Emp.java package com.test02; public class Emp { private String name; private int salary; public Emp() { } public Emp(String name, int salary) { this.name = name; this.salary = salary; } public String getName() { return name; } public void setName(String name) { this.name = nam..

    [Spring] DI / IoC (Bean 객체 생성_04) - Singleton

    [Spring] DI / IoC (Bean 객체 생성_04) - Singleton

    싱글톤 레지스트리 - 스프링이 직접 싱글톤 형태의 오브젝트를 만들고 관리하는 기능을 제공한다. (스프링 빈 오브젝트는 내부적으로 싱글톤 레지스트리를 만들어서 연동한다.) ​ 싱글톤 패턴으로 Bean객체를 선언하는 방법을 알아보고 간단하게 오늘 요일을 출력하는 코드를 보고자 합니다. ​ ​ 우선 패키지에 AbstractTest라는 이름의 추상클래스와 AbstractTest를 상속받는 각요일별 클래스를 만들었습니다. (이클립스에서 추상클래스를 먼저 만들어 놓으면 빨간줄 뜨면서 에러가 날텐데 그 에러에 마우스를 대면 자동으로 하위 클래스를 만들어줍니다) ​ ​ 패키지 구조 ​ AbstractTest.java package com.test01; import java.util.Calendar; import jav..

    [Spring] DI / IoC (Bean 객체 생성_03) - setter 주입

    [Spring] DI / IoC (Bean 객체 생성_03) - setter 주입

    지난 포스팅에서는 생성자 주입을 통한 Bean객체 생성을 했지만 생성자가 아닌 setter에 값을 넣을수도 있습니다. ​ 패키지 구조 ​ Address.java package com.test04; public class Address { private String name; private String addr; private String phone; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public St..

    [Spring] DI / IoC (Bean 객체 생성_02) - 생성자 주입

    [Spring] DI / IoC (Bean 객체 생성_02) - 생성자 주입

    패키지 구조 ​ MessageBean.java package com.test01; public interface MessageBean { public void sayHello(); } ​ MessageBeanImpl.java package com.test01; public class MessageBeanImpl implements MessageBean { private String fruit; private int cost; public MessageBeanImpl() { this.fruit = "바나나"; this.cost = 5000; } public MessageBeanImpl(String fruit, int cost) { this.fruit = fruit; this.cost = cost; } @O..

    [Spring] DI / IoC (Bean 객체 생성_01)

    [Spring] DI / IoC (Bean 객체 생성_01)

    스프링의 특징 중 DI / IoC, AOP, OCP가 있었습니다. 그중 DI는 객체간의 결합을 느슨하게 하는 스프링의 핵심기술입니다. 쉽게 말하면 결합도를 낮추기 위함입니다. ​ 결합도란? 강결합 : 객체 간 결합도가 강한 프로그램 - HelloApp 에서 MessageBean을 직접 객체 생성하여 사용하는 경우에 MessageBean 클래스를 다른 클래스로 변경할 경우, HelloApp의 소스를 수정해주어야합니다. ​ 약결합 : 인터페이스를 사용하여 객체 간 결합도를 낮춘 프로그램 인터페이스를 활용하여 결합도를 낮춘 경우 - HelloApp 은 MessageBean 이라는 인터페이스를 톨해 객체를 사용할 경우 - 일반적으로 팩토리 메서드를 활용하여, 사용할 객체를 생성합니다. 위의 경우 MessageB..

    [Spring] 기본세팅(Maven / pom.xml)

    [Spring] 기본세팅(Maven / pom.xml)

    우선 이클립스에서 자바프로젝트를 메이븐 프로젝트로 변환시키는 방법입니다. Maven은 빌드 /배포 관리툴입니다. 1. 자바 프로젝트를 만들어주세요 2. 프로젝트 이름을 짓고 Next를 눌러주세요! 3. module-info는 만들지 않을예정입니다. 체크를 해제하고 Finish를 눌러주세요 4. 생성된 프로젝트를 우클릭해서 Configure - Convert to Maven Project를 눌러주세요 5. Finish를 눌러주세요 5-1. Create new POM Maven을 만들때 이와 같은 창이 뜰겁니다.(프로젝트 이름은 임시로 쓴겁니다!) 만약 삼성에서 갤럭시 시리즈중 zfilp을 예로 들어봅시다. samsung.galaxy.zfilp이 되겠죠? 그러면 samsung.galaxy까지가 Group I..

    [Spring] Spring FrameWork(스프링이란?, 스프링의 특징)

    [Spring] Spring FrameWork(스프링이란?, 스프링의 특징)

    FrameWork? 프레임 워크란 반쯤 만들어져 있는 프로그램으로 MyBatis의 경우 Persistence FrameWork이다. Mybatis는 JDBC를 연결해주는 프레임 워크로서 JDBC에서의 다섯 가지 단계 중 1단계 Driver연결, 2단계 계정연결, 5단계 DB종료는 항상 공통된 부분 이었는데 이를 JDBCTemplate을 만들어 모아 두었으며 3단계인 Query준비 단계와 4단계 Query 실행 및 리턴 단계는 Dao에서 각각 따로 만들어 주었다. 따라서 MyBatis를 할때도 설정만 잡아두고 SQL만 신경을 쓰면 공통되는 부분은 MyBatis가 공통된 부분을 해결해 주었다. 즉, 항상 공통적인 부분은 프레임워크가 다 만들어둔 것이다. ​ Solution? 특정한 상황에 대한 해결방안으로서..