Химическая сессия Apache с Spring

В настоящее время я разрабатываю приложение java/jee, используя spring в качестве фреймворка и alfresco в качестве ged. Я использую химию apache для подключения к репозиторию alfresco. Этот код я использую для получения сеанса.

Есть ли способ изменить этот код с помощью Spring Bean, потому что я собираюсь использовать этот сеанс в разных классах, и было бы лучше быть синглтоном.

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();

person fbm fatma    schedule 10.05.2017    source источник


Ответы (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;
}

Таким образом, вы можете внедрить этот сессионный компонент туда, куда вам нужно.

person Bogdan Kobylynskyi    schedule 10.05.2017
comment
обычно я должен добавить этот компонент в файл контекста приложения, верно? - person fbm fatma; 10.05.2017
comment
Из документа Spring: @Bean is a method-level annotation and a direct analog of the XML <bean/> element. - person Bogdan Kobylynskyi; 10.05.2017