| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- tomcat
- spring
- 톰캣
- 외장톰캣
- autocomplete
- Mockito #Reflection #Sigleton #Test #JUnit
- LiveTemplate
- Spring Framework
- 디자인패턴 #싱글톤
- Today
- Total
목록Develop/Spring framework (17)
자라선
1. ApplicationContext 란 스프링의 IoC Contaner 라고도 하며, bean를 관리해주는 설정정보이다. 2. @Configuration, @Bean bean을 등록하기 위해서는 해당 클래스를 @Configuraion 어노테이션으로 감싸주고 객체 생성과 반환 기능의 메소드들은 @Bean 으로 정의해준다. @Configuration public class DaoFactory { @Bean public ConnectionMaker connectionMaker() { return new DConnectionMaker(); } @Bean public UserDao userDao(){ ConnectionMaker a = connectionMaker(); return new UserDao(a..
1. Bean 스프링에서 bean은 Ioc 방식으로 관리하는 오브젝트라는 뜻이다. 스프링에서 만들어지는 모든 오브젝트를 bean 이라고는 할수 없다. 스프링에서는 일반적으로 bean을 싱글톤 레지스트리로 패턴을 적용해 구현해준다. 2. BeanFactory 스프링에서의 BeanFactory는 bean의 생성, 등록, 조회, 반환등의 bean를 관리하는 기능을 담당한다. 보통은 BeanFactory보다는 ApplicationContext를 많이 사용한다. BeanFactory는 Interface이며, getBean()과 같은 메소드가 정의되어있다. 3. ApplicationContext BeanFactory의 기능을 확장한 것이 ApplicationContext이다. BeanFactory와 기능을 ..
토비의 스프링 예제를 실행하던중 에러가 발생했다. 간단히 말해 CGLIB 라이브러리가 없단다. 난 Spring Legacy 프로젝트로 생성했으니 그냥 pom.xml에 다음과 같이 추가하였다. cglib cglib 2.2.2
1. Invertion of Control 제목 그대로 제어 역전. 일반적으로 프로그램을 개발시 main에서 개발자가 직접 object를 생성하거나 사용하며 프로그램을 개발한다. 하지만 IoC는 개발자의 흐름이 아닌 프레임워크에서의 흐름대로 오브젝트가 생성되거나 실행되며, 우리 개발자들은 그 과정이 어떻게 일어나는지를 모른다. IoC는로 제어권한이 개발자가 아닌 프로그램이 갖고있어 최소한의 코딩만으로 그 이상의 결과를 뽑아낼수 있다는것이다. 2. IoC applied Code. public class main { public static void main(String[] args) throws ClassNotFoundException, SQLException { UserDao userdao = new D..
Factory는 객체의 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 반환하는 역할을 한다. public class main { public static void main(String[] args) throws ClassNotFoundException, SQLException { Acompany a = new Acompany(); UserDao userdao = new UserDao(a); } } 위의 코드를 보면 Client 부분은 UserDao를 직접 생성하여 사용하고있다. 하지만 확장성을 고려하여 Factory 라는 클래스를 생성 후 반환 시켜주는 경로 클래스를 만든다. public class DaoFactory { public UserDao userDao(){ ConnectionMaker a =..
개방폐쇠원칙 Open-Closed-Principle 은 확장에는 열려있어야 하고 수정에는 닫혀있어야한다. 넓은 확장성을 갖을수 있어야하며, 외부에서 값을 수정하지 못하도록 막아야한다. 이밖에 높은 응집도와 낮은 결합도도 볼수 있는데. 1. 높은 응집도 응집도가 높다는 건 하나의 모듈, 클래스가 하나의 책임 또는 관심사에 집중되어 있다는 뜻이다. 보통 하나 클래스에 공통 관심사에 묶여있다고 표현된다. 쉽게 말해 딱 하나의 역할만 하는 클래스가 높은 응집도를 가졌다라고 할수있다. 예를 들어 계산기능을 하는 메소드와 문자열 관련 포맷하는 기능을 하나로 묶어 클래스화한다면 낮은 응집도로 유지보수하기 매우매우 힘들어진다. 반대로 계산 클래스, 문자열 클래스를 분리하면 문제 발생시 또는 수정시 해당 클래..
1. Wrong Code DAO(Data Access Object)를 사용하여 코드로 알아보자. 하단의 코드로 main, Dao, VO(Value Object)를 생성하였다. Main Class package test; import java.sql.SQLException; import java.util.Random; public class main { public static void main(String[] args) throws ClassNotFoundException, SQLException { UserDao dao = new UserDao(); User user = new User(); user.setId("" + new Random().nextInt()); user.setName("test");..