Skip to content
This repository has been archived by the owner on Apr 16, 2024. It is now read-only.

Commit

Permalink
[ch01] Use Spring's application context to management for components.
Browse files Browse the repository at this point in the history
  • Loading branch information
dhsim86 authored and Dongho Sim committed Jul 29, 2017
1 parent c7d6fa7 commit 1815285
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 4 deletions.
41 changes: 41 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
<webAppDir>target/classes</webAppDir>
<webXmlPath>src/main/webapp/WEB-INF/web.xml</webXmlPath>
<mysql.connector.version>5.1.42</mysql.connector.version>

<spring.framework-version>4.3.10.RELEASE</spring.framework-version>
<apache.commons-logging-version>1.1.3</apache.commons-logging-version>
<cglib.version>3.1</cglib.version>
</properties>

<dependencies>
Expand All @@ -21,6 +25,43 @@
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.framework-version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.framework-version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.framework-version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.framework-version}</version>
</dependency>

<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${apache.commons-logging-version}</version>
</dependency>

<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>${cglib.version}</version>
</dependency>

</dependencies>

<build>
Expand Down
14 changes: 11 additions & 3 deletions src/main/java/ch01/springbook/user/dao/DaoFactory.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
package ch01.springbook.user.dao;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DaoFactory {

@Bean
public UserDao userDao() {
ConnectionMaker connectionMaker = new SimpleConnectionMaker();
UserDao userDao = new UserDao(connectionMaker);
return userDao;
return new UserDao(connectionMaker());
}

@Bean
public ConnectionMaker connectionMaker() {
return new SimpleConnectionMaker();
}
}
7 changes: 6 additions & 1 deletion src/main/java/ch01/springbook/user/dao/UserDaoTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@

import java.sql.SQLException;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import ch01.springbook.user.domain.User;

public class UserDaoTest {

public static void main(String[] args) throws ClassNotFoundException, SQLException {

UserDao dao = new DaoFactory().userDao();
ApplicationContext applicationContext =
new AnnotationConfigApplicationContext(DaoFactory.class);
UserDao dao = applicationContext.getBean("userDao", UserDao.class);

User user = new User();
user.setId("whiteship");
Expand Down

0 comments on commit 1815285

Please sign in to comment.