SpringBootのScaffoldツールを作ってみた
12325 ワード
はじめに
RailsやLaravelにはScaffoldコマンドがありますが、SpringBootにはなさそうだったので自分で作ってみました。
このツールで作成されるのは、RestController、Service、Repository、Modelです。
準備
-
こちらからリポジトリをダウンロードします。
- ダウンロード後、適当なところに解凍します。
- 解凍したフォルダ内にあるbinフォルダをパスに通します。
使い方
- SpringBootプロジェクトのルートに移動します。
- 以下のコマンドを実行します。
sbcui -p com.example.demo -c "User[id:Long,name:String]"
- 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セット作るのが手間だったので、このツールを使って効率化できるかなと。
よかったら、ぜひ、使ってみてください。
Author And Source
この問題について(SpringBootのScaffoldツールを作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/mr-hisa-child/items/2e5b5355254c547fb160著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .