스프링 25

[Spring] 09. MessageSource (메시지 국제화)

오늘은 MessageSource의 사용법에 대해 정리해보려고 합니다. 바로 패키지 만들러 갑시다~ testmessage_en.properties member.name=java member.birthplace=usa member.hobby=basketball,game member.age={0}:teenagers title=[member Information] testmessage_ko.properties member.name=\uC790\uBC14 member.birthplace=\uB300\uD55C\uBBFC\uAD6D member.hobby=\uB18D\uAD6C,\uAC8C\uC784 member.age={0}:\uCCAD\uC18C\uB144 title=[\uD68C\uC6D0\uC815\uBCF..

Java/Spring 2021.06.24

[Spring] 08. <bean> 속성 사용하기 - Autowire

오늘은 spring의 bean속성 중 autowire라는 기능에 대해 정리해보려고 합니다. 새로운 프로젝트부터 만들러 가볼까요? (프로젝트는 그냥 큰 구분을 위한 것일 뿐 굳이 새로 안 만들어도 상관없습니다.) Spring04로 자바프로젝트 만들고 convert to maven project 해주시고 평소와 같이 spring-core와 spring-context를 pom.xml에 붙여줍니다. 그다음 패키지 만들러 가봅시다! Food.java package com.test02; public class Food { private String name; private int price; public Food() { } public Food(String name, int price) { this.name = n..

Java/Spring 2021.06.23

NoUniqueBeanDefinitionException 에러

의 속성 중 autowire에서 byType을 사용했을 때 에러가 발생했다. Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.test02.Food' available: expected single matching bean but found 2: favoriteFood,unFavoriteFood at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:220) at org.springframework.beans.factory...

Java/Error 2021.06.22

[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

Invalid property ' ' of bean class 에러

spring에서 DI 유형 중 setter 유형으로 setter를 만들고 객체를 생성할 때 값을 잘못주입해서 에러가 발생했다. Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'myclass' of bean class [com.test01.BeanTest]: Bean property 'myclass' is not writable or has an invalid setter method. Did you mean 'myClass'? at org.springframework.beans.BeanWrapperImpl.createNotWritablePropertyException(BeanWrapperImpl.jav..

Java/Error 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