Skip to content

Commit 6e50d87

Browse files
committed
day-09 has been completed.
1 parent c1df3ed commit 6e50d87

File tree

2 files changed

+109
-2
lines changed

2 files changed

+109
-2
lines changed

Readme.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,4 +117,22 @@
117117
- OneToMany relation
118118
- ManyToMany relation
119119

120-
- @RequiredArgsConstructor
120+
- @RequiredArgsConstructor
121+
122+
## 9. Gün
123+
- value and reference types
124+
- primitive types and Wrapper classes
125+
- ModelMapper
126+
- DTO
127+
128+
- React Router DOM
129+
- BrowserRoute
130+
- Routes
131+
- Route
132+
- useNavigate
133+
- useParams
134+
135+
- ContexAPI
136+
- Context.Provider
137+
- useContext
138+
- Enviroment variables in React

day-09/Readme.md

Lines changed: 90 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,93 @@
1010
- Route
1111
- useNavigate
1212
- useParams
13-
- Enviroment variables in React
13+
- ContexAPI
14+
- Context.Provider
15+
- useContext
16+
- Enviroment variables in React
17+
18+
#Mapping
19+
20+
Buradaki temel amacımız API ile gelen istekleri alıp, işleyip ve daha sonra cevap verirken `internal` yani içeride kullanılan nesneler ile `external` yani dış dünyaya açılan nesneler arasında bir düzenleme yapmaktır.
21+
22+
## 1. Bağımlılık
23+
24+
```xml
25+
<dependency>
26+
<groupId>org.modelmapper</groupId>
27+
<artifactId>modelmapper</artifactId>
28+
<version>2.3.2</version>
29+
</dependency>
30+
```
31+
32+
## 2. Klasör Yapılandırması
33+
### config
34+
35+
Öncelikle **config** isimli bir klasör açıp, **ModelMapper** sınıfından bir örneğin IoC kapsamında üretilmesini sağlıyoruz.
36+
37+
Aynı zamanda eşleştirme (matching) stratejisini de yine bu bölümde gerçekleştiriyoruz.
38+
39+
```java
40+
@Configuration
41+
public class ModelMapperConfig {
42+
43+
@Bean
44+
public ModelMapper getModelMapper() {
45+
ModelMapper modelMapper = new ModelMapper();
46+
modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
47+
return modelMapper;
48+
}
49+
}
50+
```
51+
52+
### dto
53+
Ana paketin altında/entities klasörü altında dto isimli bir klasör eklenebilir. Data Transfer Objects yapılarının tercih edilen bir klasör altında toplanması tercih edilir.
54+
55+
## 3. Örnek Kullanımlar
56+
Örnek kullanımlar aşağıdaki gibi verilmiştir.
57+
58+
```java
59+
@Override
60+
public UserDto createOneUser(UserDto userDto) {
61+
// Dto -> Entity
62+
User user = modelMapper.map(userDto, User.class);
63+
user.setPassword("123456");
64+
User savedUser = userDao.save(user);
65+
// Entity -> User
66+
return modelMapper.map(savedUser, UserDto.class);
67+
}
68+
69+
@Override
70+
public List<UserDto> getAllUsers() {
71+
72+
Iterable<User> iterable = userDao.findAll();
73+
List<User> users = new ArrayList<User>();
74+
iterable.forEach(users::add);
75+
76+
List<UserDto> usersDto = new ArrayList<UserDto>();
77+
78+
// for (User user : users) {
79+
// usersDto.add(modelMapper.map(user, UserDto.class));
80+
// }
81+
82+
usersDto = users
83+
.stream()
84+
.map(user -> modelMapper.map(user, UserDto.class))
85+
.collect(Collectors.toList());
86+
return usersDto;
87+
}
88+
89+
@Override
90+
public List<User> getAllUsersList() {
91+
Iterable<User> iterable = userDao.findAll();
92+
List<User> users = new ArrayList<User>();
93+
iterable.forEach(users::add);
94+
return users;
95+
}
96+
```
97+
98+
99+
# Kaynaklar
100+
1. [Model Mapper](https://mvnrepository.com/artifact/org.modelmapper/modelmapper/3.1.0)
101+
2. [Model Mapper](http://modelmapper.org/getting-started/)
102+
3. [Converting Iterable to Collection in Java](https://www.baeldung.com/java-iterable-to-collection)

0 commit comments

Comments
 (0)