Java 관련/Spring Legecy
![[Spring] DI / IoC (Bean 객체 생성_06) - 객체 참조(ref)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIkz65%2FbtrnevKC2Qd%2FL5ql0zMxUIXdbyWiYkyfKK%2Fimg.png)
[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 동시 사용도 될까?](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzmSzP%2Fbtrm56yC8uX%2FZJOJhKr3VLWiyYFTd8Uxx0%2Fimg.png)
[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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFDxL2%2Fbtrm82bDymk%2FsKUThUbmocakIK7pRxgYn1%2Fimg.png)
[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 주입](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzsS6S%2Fbtrndm1FN2W%2F97B4zdG41URiUF2KKRWgtK%2Fimg.png)
[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) - 생성자 주입](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBGZlp%2FbtrnbU5rmmg%2FANFOEwKUeXKnHCFPwTjdQk%2Fimg.png)
[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)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpJE1V%2FbtrndmAy7Zd%2F7rLVrXxfy5SoK63c2LOKPk%2Fimg.png)
[Spring] DI / IoC (Bean 객체 생성_01)
스프링의 특징 중 DI / IoC, AOP, OCP가 있었습니다. 그중 DI는 객체간의 결합을 느슨하게 하는 스프링의 핵심기술입니다. 쉽게 말하면 결합도를 낮추기 위함입니다. 결합도란? 강결합 : 객체 간 결합도가 강한 프로그램 - HelloApp 에서 MessageBean을 직접 객체 생성하여 사용하는 경우에 MessageBean 클래스를 다른 클래스로 변경할 경우, HelloApp의 소스를 수정해주어야합니다. 약결합 : 인터페이스를 사용하여 객체 간 결합도를 낮춘 프로그램 인터페이스를 활용하여 결합도를 낮춘 경우 - HelloApp 은 MessageBean 이라는 인터페이스를 톨해 객체를 사용할 경우 - 일반적으로 팩토리 메서드를 활용하여, 사용할 객체를 생성합니다. 위의 경우 MessageB..
![[Spring] 기본세팅(Maven / pom.xml)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmbMBr%2FbtrnfB4QzWf%2FoOo8TRcS3PhccefLjCocBK%2Fimg.png)
[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(스프링이란?, 스프링의 특징)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPElw4%2Fbtrm7L2sBJd%2FNnfyLYFnkwLrz8rzse2HWK%2Fimg.png)
[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? 특정한 상황에 대한 해결방안으로서..