2017-05-10 83 views
0

我目前正在開發Java/jee應用程序使用彈簧作爲框架和露天作爲ged。我正在使用Apache化學連接到露天存儲庫。 這是我用來獲取會話的代碼。apache化學會話與彈簧

有沒有一種方法可以用spring bean來更改這段代碼,因爲我將在不同的類中使用這個會話,並且最好是singleton。

Map<String, String> parameter = new HashMap<String, String>(); 

    // user credentials 
    parameter.put(SessionParameter.USER, "admin"); 
    parameter.put(SessionParameter.PASSWORD, "admin"); 

    // connection settings 
    parameter.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/cmisatom"); 
    parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value()); 
    System.out.println(BindingType.ATOMPUB.value()); 
    // set the alfresco object factory 
    parameter.put(SessionParameter.OBJECT_FACTORY_CLASS, "org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl"); 

    // create session 
    SessionFactory factory = SessionFactoryImpl.newInstance(); 
    Session session = factory.getRepositories(parameter).get(0).createSession(); 

回答

1

就宣佈它作爲一個bean:

@Bean 
public Session sessionBean() { 
    Map<String, String> parameter = new HashMap<String, String>(); 
    // ... 
    SessionFactory factory = SessionFactoryImpl.newInstance(); 
    Session session = factory.getRepositories(parameter).get(0).createSession(); 
    return session; 
} 

所以你可以注入此會話bean你需要的地方。

+0

通常我必須在應用程序上下文文件中添加這個bean是嗎? –

+0

來自[Spring doc](http://docs.spring.io/spring-javaconfig/docs/1.0.0.M4/reference/html/ch02s02.html):'@Bean是一種方法級別的註釋和直接XML 元素的類似物.' –

+0

好的謝謝它有效:) –