Skip to content

Commit

Permalink
feat : DI 적용
Browse files Browse the repository at this point in the history
  • Loading branch information
mjj111 committed Jun 27, 2024
1 parent ec127f4 commit 0dc1982
Show file tree
Hide file tree
Showing 71 changed files with 1,073 additions and 778 deletions.
15 changes: 15 additions & 0 deletions src/main/java/client/Application.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package client;

import spring.ioc.annotation.ComponentScan;
import spring.ioc.annotation.Configuration;
import spring.mvc.web.TomcatStarter;

@Configuration
@ComponentScan(value = {"client"})
public class Application {
public static void main(String[] args) {
final TomcatStarter tomcatStarter = new TomcatStarter();
tomcatStarter.start();
tomcatStarter.await();
}
}
34 changes: 16 additions & 18 deletions src/main/java/client/controller/UserController.java
Original file line number Diff line number Diff line change
@@ -1,48 +1,46 @@
package client.controller;

import client.controller.dto.CreatUserDto;
import client.model.User;
import client.domain.User;
import client.service.UserService;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import spring.mvc.annotation.Controller;
import spring.mvc.annotation.RequestMapping;
import spring.mvc.controller.AbstractController;
import spring.mvc.handler.mapping.RequestMethod;
import spring.mvc.web.handler.mapping.RequestMethod;
import spring.mvc.view.ModelAndView;

import java.util.List;

@Controller
public class UserController extends AbstractController {
public class UserController {

private final UserService userService;

public UserController(final UserService userService) {
this.userService = userService;
}

@RequestMapping("/users")
@RequestMapping(value = "/users/create", method = RequestMethod.POST)
public ModelAndView create(HttpServletRequest request, HttpServletResponse response) {
CreatUserDto requestDto = CreatUserDto.of(request);
User user = userService.createUser(requestDto);

ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("user", user);
return modelAndView;
}

@RequestMapping(value = "/users", method = RequestMethod.GET)
public ModelAndView getUsers(HttpServletRequest request, HttpServletResponse response) {
int wannaSize = Integer.parseInt(request.getParameter("size"));
List<User> users = userService.getUsersWithSize(wannaSize);

ModelAndView modelAndView = jsonView();
for(int i = 0; i < wannaSize; i++) {
ModelAndView modelAndView = new ModelAndView();
for (int i = 0; i < users.size(); i++) {
User user = users.get(i);
modelAndView.addObject("user"+ i, user);
}

return modelAndView;
}

@RequestMapping(value = "/users/create", method = RequestMethod.POST)
public ModelAndView create(HttpServletRequest request, HttpServletResponse response) {
CreatUserDto requestDto = CreatUserDto.of(request);
User user = userService.createUser(requestDto);

ModelAndView modelAndView = jsonView();
modelAndView.addObject("user", user);
return modelAndView;
}
}
6 changes: 2 additions & 4 deletions src/main/java/client/controller/dto/CreatUserDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@

public record CreatUserDto(String name,
String password,
String email,
String userId) {
String email) {
public static CreatUserDto of(final HttpServletRequest request) {
return new CreatUserDto(request.getParameter("name"),
request.getParameter("password"),
request.getParameter("email"),
request.getParameter("userId"));
request.getParameter("email"));
}
}
29 changes: 29 additions & 0 deletions src/main/java/client/domain/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package client.domain;

import client.controller.dto.CreatUserDto;

public class User {
private long userId;
private String name;
private String password;
private String email;

public User(long userId, String name, String password, String email) {
this.userId = userId;
this.name = name;
this.password = password;
this.email = email;
}

public void updateUserId(long userId) {
this.userId = userId;
}

public String getName() {
return name;
}

public static User from(final CreatUserDto dto) {
return new User(0, dto.name(), dto.password(), dto.email());
}
}
32 changes: 32 additions & 0 deletions src/main/java/client/domain/repsotiroy/UserRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package client.domain.repsotiroy;

import client.controller.dto.CreatUserDto;
import client.domain.User;
import spring.ioc.annotation.Repository;
import java.util.*;

@Repository
public class UserRepository {

private final Map<Long, User> temporaryDatabase = new HashMap<>();
private Long SEQUENCE = 0L;

public User save(User user) {
long id = SEQUENCE++;
user.updateUserId(id);
temporaryDatabase.put(id, user);
return user;
}

public List<User> getUsersWithLimit(int wannaSize) {
while(temporaryDatabase.size() < wannaSize) {
fixUser();
}
return new ArrayList<>(temporaryDatabase.values());
}

private void fixUser() {
CreatUserDto dto = new CreatUserDto("김명준", "비밀번호", "[email protected]");
save(User.from(dto));
}
}
52 changes: 0 additions & 52 deletions src/main/java/client/model/User.java

This file was deleted.

26 changes: 0 additions & 26 deletions src/main/java/client/repsotiroy/UserRepository.java

This file was deleted.

9 changes: 4 additions & 5 deletions src/main/java/client/service/UserService.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package client.service;

import client.controller.dto.CreatUserDto;
import client.model.User;
import client.repsotiroy.UserRepository;
import spring.mvc.annotation.Service;
import client.domain.User;
import client.domain.repsotiroy.UserRepository;
import spring.ioc.annotation.Service;

import java.util.List;

Expand All @@ -17,8 +17,7 @@ public UserService(final UserRepository userRepository) {

public User createUser(final CreatUserDto creatUserDto) {
User user = User.from(creatUserDto);
userRepository.save(user);
return user;
return userRepository.save(user);
}

public List<User> getUsersWithSize(final int wannaSize) {
Expand Down
7 changes: 0 additions & 7 deletions src/main/java/http/Application.java

This file was deleted.

42 changes: 0 additions & 42 deletions src/main/java/http/RequestHandler.java

This file was deleted.

20 changes: 0 additions & 20 deletions src/main/java/http/RequestMapping.java

This file was deleted.

26 changes: 0 additions & 26 deletions src/main/java/http/WebServer.java

This file was deleted.

24 changes: 0 additions & 24 deletions src/main/java/http/controller/AbstractController.java

This file was deleted.

8 changes: 0 additions & 8 deletions src/main/java/http/controller/Controller.java

This file was deleted.

Loading

0 comments on commit 0dc1982

Please sign in to comment.