私はいくつかのSpring管理クラスを(xml構成を介して)持っています。そのうちの1つはSessionFactoryで、別のSpring管理クラスに注入されます。このクラスが新しいセッションを必要とするときはいつでも、SessionFactory で createSession を呼び出します。
ただし、私が間違っていない限り、これはセッション自体が Spring で管理されていないことを意味します。これは、Bean を Spring で管理する必要があるいくつかの @Transactional メソッドがあるため、問題があります。
私は FactoryBeans について調べてきましたが、特に私の createSession メソッドはパラメーターを受け取り、FactoryBean.getObject() はパラメーターを受け取っていないため、これを行う最善の方法がわかりません。
getObject を使用して、パラメータを手動で上に設定することもできますが、可能であれば、ファクトリに強制的に設定したいと考えています。
誰でも助けることができますか?前もって感謝します。簡単な例を以下に示します。
public class SessionFactory {
public final Session createSession(String username){
Session session = new SessionImpl(username);
return session;
}
}
public class SessionImpl implements Session{
private String username;
@Override
@Transactional
public void doSomething(){
// Does something
}
public void setUsername(String username){
this.username = username;
}
public String getUsername(){
return username;
}
}
public class Service {
private SessionFactory sessionFactory; // Set by Spring through xml config
public void doSomethingServicy(){
}
public void setSessionFactory(SessionFactory sessionFactory){
this.sessionFactory = sessionFactory;
}
}