![](/img/trans.png)
[英]How to create immutable and singleton class in Spring boot?
[英]How to use services within a singleton-class Spring Boot (wire up different services with a “usual” class)
我想為我的Spring-Boot應用程序運行一些測試,並且我在單例中繼續運行NullPointerException。 我有以下設置:
@Service
public class ProjectServiceImpl implements ProjectService {
@Transactional
@Override
public void saveProject(ProjectDto projectDto) {
ProjectEntity projectEntity = ProjectConverter.getInstance().convertDtoToEntityWithDefaultFactory(projectDto);
entityManager.persist(projectEntity);
entityManager.flush();
}
}
以下是Singleton:
@ComponentScan(myServicePackageImpl)
public class ProjectConverter {
private static ProjectConverter projectConverterInstance;
@Autowired
private FactoryEntityService factoryService;
public static ProjectConverter getInstance() {
if (projectConverterInstance == null) {
projectConverterInstance = new ProjectConverter();
}
return projectConverterInstance;
}
private ProjectConverter() {
}
@Transactional
public ProjectEntity convertDtoToEntityWithDefaultFactory(ProjectDto projectDto) {
FactoryEntity defaultFactory = this.factoryService.
getDefaultFactoryEntity();
//...
}
}
現在我讀到這篇文章 ,說如果手動實例化你的類(我在單例中做),你可能會遇到NullPointerException
- 現在我的問題是:我該如何解決這個問題? 我得到了我的轉換器類,它需要是一些可以在另一個服務中完成的數據庫。 對我來說,這意味着我不僅可以在我的班級中擁有靜態成員(因為我使用自動服務)。 是否有可能在“通常的班級”中連接兩項服務?
現在我讀到這篇文章說如果你手動實例化你的類(我在單例中做),你可能會遇到NullPointerException。
您不必自己初始化ProjectConverter
。 您可以將其標記為@Component
,Spring將為您創建此類的Bean。
代碼片段:
@Component
public class ProjectConverter { ... }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.