最近、Webプロジェクトで作業しています。Springベースの開発に関するベストプラクティスとSpring Beanスコープに関するいくつかのことを明確にしたいだけです。ここで私は、私はその後、私はSpringのステートレスサービスレイヤー
私はJobServiceを作りたい。ここで@Service
Public class JobService {
public void run(Job job){
-- perform the business logic
}
}
以下のようにサービスを持っている
@Controller
Public class JobController{
private JobService jobService;
@Autowired
public void setJobService(JobService jobService) {
this.jobService = jobService ;
}
public void run(){
Job job = new Job();
-- Setting the properties for the Object
jobService.run(job);
}
}
以下などのWebコントローラを持っているサンプルコード
を使用してシナリオを使用しています私はJobServiceをシングルトンとして定義できるので、不要なオブジェクトの作成を減らすことができます。クラスの状態を無制限にするために、私はインスタンスのプロパティを保持したくありません。このシナリオでは、さまざまなJobオブジェクトをサービスに渡します。これは、JObserviceが異なるジョブオブジェクトを処理するため、このJobServiceをステートフルにしますか?あなたは
おかげで、 Keth
デフォルトでは、SpringではすべてのSpring Beanが特に指定されていない限り、シングルトンです。したがって、デフォルトでJobService上に@Serviceがある場合、それは返信のためのシンプルな – pvpkiran
@pvpkiranです。はい、デフォルトではSpring Beanはシングルトンです。しかし、サービスクラス内のロジックをシングルトンにする必要がありますか?シングルトンとしてマークした場合でも、開発者がシングルトンの動作に違反する可能性があります。 – keth