스프링프레임워크 19

[Spring] 07. 객체의 생성 타이밍 ( + lazy-init)

오늘은 spring에서 객체는 언제 생성되는지에 대해 정리해보려고 합니다. com.test07 패키지 만들러 가볼까요? IgTv.java package com.test07; public class IgTv implements TV { public IgTv() { System.out.println("ig tv 생성"); } @Override public void powerOn() { System.out.println("ig tv on"); } @Override public void powerOff() { System.out.println("ig tv off"); } @Override public void volumeUp() { System.out.println("ig tv volume up"); } @Ov..

Java/Spring 2021.06.21

[Spring] 06. applicationContext의 내부구조(Factory 패턴)

spring에서 지금까지는 MTest에서 ApplicationContext factory = new .... 이러한 형식으로 작성해서 applicationContext 안에 생성되어있는 객체를 불러오는 작업을 했었습니다. 그렇다면 이게 내부적으로 어떻게 동작을 하는것인지에 대해 오늘 정리해보려고 합니다. com.test06 패키지를 만들어줍니다. 이번엔 만들때부터 뭔가 어색하죠? ㅎㅎ applicationContext.xml없이 전부 class로 만들어 줍니다.(TV는 인터페이스입니다.) BeanFactory.java package com.test06; public class BeanFactory { public Object getBean(String beanName) { if(beanName.equal..

Java/Spring 2021.06.20

[Spring] Namespace가 안 나올 때

지난 포스팅에서 Namespace를 이용하여 bean 태그의 속성 사용하는 방법을 정리했는데 제가 다른 컴퓨터로 실습을 해보다가 보니 아래 그림처럼 Namespace가 처음에 없는 경우가 있어서 이럴 때는 어떻게 해야하는지 살펴보겠습니다. 1. Editor를 이용한다. 해당 xml파일에 마우스 오른쪽 클릭 - open with - spring 검색 - spring config editor 선택 2. sts를 업데이트한다. Help - eclipse market place - install - sts 업데이트 여기서 Spring Tools 3 Add-On for Spring Tools 를 update 해줍니다. Confirm 눌러주시고요 여기서도 별다른 클릭없이 바로 Confirm 여기서 I accept ..

Java/Spring 2021.06.19

[Spring] 05. <bean> 속성 사용하기

오늘은 태그 안에 있는 속성들 중 c: 속성과 p:속성을 이용해 보려고 합니다. com.test05 패키지부터 만들러 가봅시다~ Developer.java package com.test05; public class Developer { private Emp emp; private String dept; public Developer() { } public Developer(Emp emp, String dept) { this.emp = emp; this.dept = dept; } public Emp getEmp() { return emp; } public void setEmp(Emp emp) { this.emp = emp; } public String getDept() { return dept; } pub..

Java/Spring 2021.06.18

[Spring] 04. 생성된 객체 가져오기

오늘은 이미 만들어져 있는 객체를 가져와서(참조해서) 사용하는 방법을 배워보겠습니다. 그 전에 생성자 주입, setter주입은 같이 사용할 수도 있다는거 알고 계셨나요? com.test03 패키지를 만들어서 간단히 보여드리겠습니다. Developer.java package com.test03; public class Developer extends Emp { private String dept; public Developer() { } public Developer(String name, int salary) { super(name, salary); } public void setDept(String dept) { this.dept = dept; } @Override public String toStri..

Java/Spring 2021.06.16

[Spring] 03. Singleton(싱글톤)으로 객체 선언하기

오늘은 스프링에서 싱글톤을 이용해서 객체 생성하는 방법을 알아보려고 합니다. 그렇다면 싱글톤이란 무엇인가 먼저 알아봐야겠죠? Singleton(싱글톤) 이란? 간단하게 말하면 "객체의 인스턴스가 단 1개만 생성되는 패턴을 의미한다." 입니다. 그렇다면 왜 싱글톤을 사용할까요? 싱글톤의 장점으로는 객체의 인스턴스가 1개만 생성되기 때문에 고정된 메모리 영역을 사용하여 메모리 낭비를 방지할 수 있습니다. 싱글톤은 전역으로 사용되는 인스턴스를 가지기 때문에 다른 클래스간의 데이터 공유가 비교적 간단합니다. 이제 본격적으로 코딩해볼게요!! 이번에는 Spring03이라는 프로젝트를 새로 만들어주시고 그 안에 com.test01이라는 패키지를 만들어 주세요 AbstractTest.java package com.te..

Java/Spring 2021.06.14

[Spring] 02. bean 객체 생성하기(01)

이제 본격적으로 스프링을 사용해서 코딩을 해볼게요!! 지난 포스팅과 비슷하게 Spring_Hello라는 프로젝트에 이렇게 5가지를 만들어 줍니다. - 여기서 MessageBean.java는 interface이며 MessageBeanEn, MessageBeanKo는 MessageBean을 상속받고 있어야합니다. - beans.xml은 패키지 마우스 오른쪽 클릭 - new - other - spring 검색 후 Spring Bean Configuration File로 만들어 주시면 됩니다. 그리고 태그 안에다가 이 코드를 작성한다면 준비 완료! MessageBean, MessageBeanKo, MessageBeanEn은 아래 포스팅된 내용과 같습니다. https://darmk.tistory.com/6 [Sp..

Java/Spring 2021.06.11

[Spring] 01. DI / IoC 강결합 약결합

오늘은 DI / IoC 중에 DI에서의 강결합과 약결합의 뜻과 함께 실제 사용하는 코드를 작성해서 비교해보려고 합니다. 그 전에 잠깐 앞서 저번 포스팅에 안에 가져온 spring-core, spirng-context에 대해 간단히 설명하자면 그림에서 보는것과 같이 스프링 구성으로 되어있는데, 이 모듈들을 가져와서 스프링 프레임워크를 가져다 쓰겠다! 하는 의미로 가져와서 사용하는것이라고 알고계시면 됩니다 앞으로 많이 쓰게될거에요 ㅎㅎㅎ 자 이제 그럼 다시 본문으로 와서 실습을 위해 Eclipse를 켜고 Spring_Hello라는 자바 패키지를 만든 후 저번과 동일하게 설정을 마쳐주겠습니다 (당연히 pom.xml에 에 core, context를 추가해줘야겠죠? ㅎㅎ) 설정을 다 마쳤다면 Spring_Hell..

Java/Spring 2021.06.09