SpringBoot의 Scaffold 도구를 만들어 보았습니다.

11662 단어 SpringBootscaffold

소개



Rails와 Laravel에는 Scaffold 명령이 있지만 SpringBoot에는 없을 것 같았기 때문에 스스로 만들어 보았습니다.
이 도구로 작성되는 것은 RestController, Service, Repository, Model입니다.

준비



  • 여기 에서 리포지토리를 다운로드합니다.
  • 다운로드 후, 적당한 곳에 해동합니다.
  • 압축을 푼 폴더 안에 있는 bin 폴더를 경로로 통과시킵니다.

  • 사용법


  • SpringBoot 프로젝트의 루트로 이동합니다.
  • 다음 명령을 실행합니다.
  • sbcui -p com.example.demo -c "User[id:Long,name:String]"
    
    -c 의 클래스 정보는 더블 쿼트로 둘러싸는 것을 잊지 않고!

    실행 후, 다음과 같은 파일이 작성됩니다.


    domain/model/User.java
    @Entity
    @Table
    @Getter
    @Setter
    @EqualsAndHashCode(of = { "id" })
    public class User {
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Id
        @Column
        private Long id;
        @Column
        private String name;
    }
    

    domain/repository/UserRepository.java
    @Repository
    public interface UserRepository extends JpaRepository<User, Long> {
    }
    

    domain/service/UserService.java
    @Service
    public class UserService {
    
        @Autowired
        private UserRepository userRepository;
    
        public List<User> findAll(){
            return userRepository.findAll();
        }
    
        public User find(Long id){
            return userRepository.findById(id).orElse(null);
        }
    
        public User save(User entity){
            return userRepository.save(entity);
        }
    
        public void delete(User entity){
            userRepository.delete(entity);
        }
    }
    

    app/controller/UserController.java
    @RestController
    @RequestMapping("user")
    public class UserController {
    
        @Autowired
        private UserService userService;
    
        @RequestMapping(method = RequestMethod.GET)
        public List<User> findAll() {
            return userService.findAll();
        }
    
        @RequestMapping(method = RequestMethod.GET, value = "{id}")
        public User find(@PathVariable Long id) {
            return userService.find(id);
        }
    
        @RequestMapping(method = RequestMethod.POST)
        public ResponseEntity<String> create(@Validated @RequestBody User input) {
            userService.save(input);
            return ResponseEntity.ok().build();
        }
    
        @RequestMapping(method = RequestMethod.PUT, value = "{id}")
        public ResponseEntity<String> update(@PathVariable Long id,
                @Validated @RequestBody User input) {
    
            User entity = userService.find(id);
    
            if (Objects.isNull(entity)) {
                return ResponseEntity.badRequest().build();
            }
    
            userService.save(input);
    
            return ResponseEntity.ok().build();
        }
    
        @RequestMapping(method = RequestMethod.DELETE, value = "{id}")
        public ResponseEntity<String> delete(@PathVariable Long id) {
    
            User entity = userService.find(id);
    
            if (Objects.isNull(entity)) {
                return ResponseEntity.badRequest().build();
            }
    
            userService.delete(entity);
    
            return ResponseEntity.ok().build();
        }
    }
    

    결론



    매번 수동으로 1세트 만드는 것이 번거로웠기 때문에, 이 툴을 사용해 효율화할 수 있을까.
    원한다면 꼭 사용해보십시오.

    좋은 웹페이지 즐겨찾기