반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- html
- CES 2O21 참가
- C언어
- discrete_scatter
- inorder
- tensorflow
- 웹 용어
- 결합전문기관
- 자료구조
- 대이터
- KNeighborsClassifier
- 머신러닝
- pycharm
- web 개발
- cudnn
- broscoding
- vscode
- bccard
- CES 2O21 참여
- web
- java역사
- web 용어
- 재귀함수
- classification
- Keras
- paragraph
- mglearn
- postorder
- web 사진
- 데이터전문기관
Archives
- Today
- Total
bro's coding
spring.ioc.기초 본문
반응형
* IoC방식 제어 IoC Container(ClassPathXmlApplicationContext)를 이용해 스프링 설정 파일
* (ioc.xml)을 시슷템 시작시에 로딩해서 필요한 객체를 생성한 후 어플리케이션 상에서 필요시 해당 객체(bean)를 요청
* 하면 IoC 컨테이너가 해당 객체를 반환해준다
*
* spring IOC Container는 Singleton 방식으로 객체를 운용한다 (singleton design pattern: 시스템
* 상에서 단 하난의 객체만 생성해서 사용하고자 할 때 >서버의 자원을 절약)
*
* 기존 제어방식 : 직접 소스코드상에서 객체 생성부 코드를 변경
* IOC 제어방식 : 설정정보(ioc.xml)를 변경하여 Spring IOC 컨테이너에 알리고
* 코드상에서는 수정이 없다
* IOC는 singleton design pattern이다.
(시스템 상에서 단 한번 객체를 생성해서 여러 곳에서 공유해 사용)
* Spring IOC, DI, DL은 bean(객체)을 singleton 방식으로 운용(default)
package model;
public interface Tool {
public void work();
}
package model;
public class Hammer implements Tool {
public void work() {
System.out.println("망치 도구로 일하다");
}
}
package model;
public class Spade implements Tool {
public void work() {
System.out.println("삽 도구로 일하다");
}
}
package test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import model.Tool;
public class TestIOCUser {
/**
* 기존 제어방식 사용자가 망치를 사용하기 위해 Hammer 객체를 생성해서 work 메서드를 호출 만약 망치에서 삽으로 도구를 변경해 한다면
* new Hammer() 즉 객체 생성하는 부분은 변경이 불가피하다(코드 수정 필요)
*
* 도구(컴포넌트)의 변경이 필요할 때 마다 직접 코드를 수정해야 하므로 도구와 사용자의 관계사엥서 결합도가 높아 유지보수성이 낮다고 볼 수
* 있다
*
* --> Spring IOC를 적용, 결합도를 느슨하게 or 낮게 만들어 유지보수성을 향상시켜 본다
*
* @param args
*/
/**
* IoC방식 제어 IoC Container(ClassPathXmlApplicationContext)를 이용해 스프링 설정 파일
* (ioc.xml)을 시슷템 시작시에 로딩해서 필요한 객체를 생성한 후 어플리케이션 상에서 필요시 해당 객체(bean)를 요청하면 Ioc\C
* 컨테이너가 해당 객체를 반환해준다
*
* spring IOC Container는 Singleton 방식으로 객체를 운용한다 (singleton design pattern: 시스템
* 상에서 단 하난의 객체만 생성해서 사용하고자 할 때 >서버의 자원을 절약)
*
* 기존 제어방식 : 직접 소스코드상에서 객체 생성부 코드를 변경
* IOC 제어방식 : 설정정보(ioc.xml)를 변경하여 Spring IOC 컨테이너에 알리고
* 코드상에서는 수정이 없다
*
* @param args
*/
public static void main(String[] args) {
//// Hammer tool = new Hammer();
// Spade tool = new Spade();
// tool.work();
ClassPathXmlApplicationContext factory = new ClassPathXmlApplicationContext("ioc.xml");
System.out.println(factory.getBean("tool"));
System.out.println(factory.getBean("tool"));
System.out.println(factory.getBean("tool"));
// 위에서 반환받은 객체의 주소값은 동일하다
// spring IOC Container는 Singleton 방식으로 객체를 운용한다
Tool tool = (Tool) factory.getBean("tool");
tool.work();
factory.close();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="tool" class="model.Spade"></bean>
</beans>
반응형
'[IT] > Spring' 카테고리의 다른 글
Spring.AOP.around (0) | 2021.05.25 |
---|---|
log4j (0) | 2021.05.24 |
Spring.AOP(Aspect Oriented Programming) (0) | 2021.05.21 |
Spring.IOC.판서 (0) | 2021.05.21 |
spring.Maven (0) | 2021.05.20 |
spring.ioc.기존방식 (0) | 2021.05.18 |
Spring.IoC/DI/DL (0) | 2021.05.17 |
Spring.Framework.개념용어정리 (0) | 2021.05.17 |
Comments