- Spring 5.0 By Example
- Claudio Eduardo de Oliveira
- 266字
- 2021-06-24 19:17:36
CategoryService
Let's start with our simplest service, the CategoryService class, the behaviors expected of this class are CRUD operations. Then, we need a representation of our persistence storage or repository implementation, for now, we are using the ephemeral storage and ArrayList with our categories. In the next chapter, we will add the real persistence for our CMS application.
Let's create our first Spring service. The implementation is in the following snippet:
package springfive.cms.domain.service;
import java.util.List;
import org.springframework.stereotype.Service;
import springfive.cms.domain.models.Category;
import springfive.cms.domain.repository.CategoryRepository;
@Service
public class CategoryService {
private final CategoryRepository categoryRepository;
public CategoryService(CategoryRepository categoryRepository) {
this.categoryRepository = categoryRepository;
}
public Category update(Category category){
return this.categoryRepository.save(category);
}
public Category create(Category category){
return this.categoryRepository.save(category);
}
public void delete(String id){
final Category category = this.categoryRepository.findOne(id);
this.categoryRepository.delete(category);
}
public List<Category> findAll(){
return this.categoryRepository.findAll();
}
public Category findOne(String id){
return this.categoryRepository.findOne(id);
}
}
There is some new stuff here. This class will be detected and instantiated by the Spring container because it has a @Service annotation. As we can see, there is nothing special in that class. It does not necessarily extend any class or implement an interface. We received the CategoryRepository on a constructor, this class will be provided by the Spring container because we instruct the container to produce this, but in Spring 5 it is not necessary to use @Autowired anymore in the constructor. It works because we had the only one constructor in that class and Spring will detect it. Also, we have a couple of methods which represent the CRUD behaviors, and it is simple to understand.
- Android項目開發入門教程
- Python數據可視化:基于Bokeh的可視化繪圖
- Interactive Data Visualization with Python
- Java技術手冊(原書第7版)
- Access 2010數據庫基礎與應用項目式教程(第3版)
- Swift 3 New Features
- Apache Karaf Cookbook
- Mastering JavaScript Design Patterns(Second Edition)
- TMS320LF240x芯片原理、設計及應用
- 小程序,巧應用:微信小程序開發實戰(第2版)
- Learning Docker Networking
- 超簡單:用Python讓Excel飛起來(實戰150例)
- Python Digital Forensics Cookbook
- AutoCAD基礎教程
- Python Automation Cookbook