Skip to content

Commit 35e3eb8

Browse files
author
Andrii Bobrov
committed
Done task bobocode-projects#1: hello-application-context
1 parent 59d9b44 commit 35e3eb8

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

hello-application-context/src/main/java/com/bobocode/config/AppConfig.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.bobocode.config;
22

33
import com.bobocode.TestDataGenerator;
4+
import org.springframework.context.annotation.Bean;
5+
import org.springframework.context.annotation.ComponentScan;
6+
import org.springframework.context.annotation.Configuration;
47

58
/**
69
* This class application context configuration.
@@ -10,6 +13,12 @@
1013
* todo: provide explicit configuration for a bean of type {@link TestDataGenerator} with name "dataGenerator" in this class.
1114
* todo: Don't specify bean name "dataGenerator" explicitly
1215
*/
16+
@Configuration
17+
@ComponentScan(basePackages = {"com.bobocode.service", "com.bobocode.dao"})
1318
public class AppConfig {
1419

20+
@Bean
21+
public TestDataGenerator dataGenerator() {
22+
return new TestDataGenerator();
23+
}
1524
}

hello-application-context/src/main/java/com/bobocode/dao/FakeAccountDao.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.bobocode.TestDataGenerator;
44
import com.bobocode.model.Account;
55
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.stereotype.Component;
67

78
import java.util.List;
89
import java.util.stream.Stream;
@@ -15,9 +16,11 @@
1516
* todo: configure this class as Spring component with bean name "accountDao"
1617
* todo: use explicit (with {@link Autowired} annotation) constructor-based dependency injection
1718
*/
19+
@Component("accountDao")
1820
public class FakeAccountDao implements AccountDao {
1921
private List<Account> accounts;
2022

23+
@Autowired
2124
public FakeAccountDao(TestDataGenerator testDataGenerator) {
2225
this.accounts = Stream.generate(testDataGenerator::generateAccount)
2326
.limit(20)

hello-application-context/src/main/java/com/bobocode/service/AccountService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.bobocode.dao.AccountDao;
44
import com.bobocode.model.Account;
5+
import org.springframework.stereotype.Service;
56

67
import java.util.Comparator;
78
import java.util.List;
@@ -12,6 +13,7 @@
1213
* todo: configure {@link AccountService} bean implicitly using special annotation for service classes
1314
* todo: use implicit constructor-based dependency injection (don't use {@link org.springframework.beans.factory.annotation.Autowired})
1415
*/
16+
@Service
1517
public class AccountService {
1618
private final AccountDao accountDao;
1719

0 commit comments

Comments
 (0)