官术网_书友最值得收藏!

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.

主站蜘蛛池模板: 翁牛特旗| 龙川县| 青神县| 碌曲县| 新干县| 信丰县| 光山县| 邵阳县| 雷波县| 彭山县| 荥经县| 洪雅县| 遂溪县| 罗田县| 德州市| 长子县| 温宿县| 塔河县| 丰宁| 布尔津县| 平罗县| 金平| 黄龙县| 乐业县| 丹江口市| 许昌县| 克什克腾旗| 资源县| 吴江市| 乐亭县| 富顺县| 靖宇县| 嘉定区| 绥阳县| 平潭县| 称多县| 侯马市| 湖北省| 长顺县| 繁峙县| 长岛县|