использовать группу stormpath в качестве объекта весенней загрузки

Можете ли вы использовать свой групповой объект Stormpath (например, ADMIN) в качестве класса в своем приложении Spring Boot? Я имею в виду, что я хочу сохранить какое-то состояние этого объекта, и я не хочу хранить корреспондентский POJO, который будет иметь адрес электронной почты и пароль АДМИНИСТРАТОРА, а также другие данные, такие как пол/день рождения, а просто иметь все состояние и поведение в экземпляр группы stormpath ADMIN.

Можно ли этого достичь?


person Daniel Pop    schedule 23.02.2017    source источник


Ответы (1)


Когда вы говорите, что используете свой групповой объект Stormpath «как класс», я предполагаю, что вы имеете в виду «как компонент Spring»? Если так, то однозначно!

Например:

import com.stormpath.sdk.client.Client;
import com.stormpath.sdk.group.Group;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;

// ...

@Autowired
private Client client;

//I just made this property up - use any property name you want and
//define it in your Spring config and ensure the value is the 
//fully qualified Stormpath href corresponding to your admin group:
@Value("${groups.admin.href}")
private String adminGroupHref;

@Bean
public Group adminGroup() {
    return client.getResource(adminGroupHref, Group.class);
}

Затем в другом месте вашей конфигурации Spring вы можете использовать adminGroup() для ссылки на группу (в сохраненном файле класса конфигурации Java). Или, если вы хотите сослаться на Group как на bean-компонент в других классах конфигурации Java или bean-компонентах @Component, просто подключите его автоматически:

@Autowired
private Group adminGroup;

Однако, если вы определяете более одного компонента Group в своей конфигурации Java Spring (возможно, другие группы? Например, users или employees?), тогда вам понадобится @Qualifier при автоподключении, чтобы гарантировать, что будет введен правильный экземпляр Group:

@Autowired
@Qualifier("adminGroup")
private Group adminGroup;

Все экземпляры ресурсов Stormpath (Account, Group, Application и т. д.) являются потокобезопасными, поэтому при желании их можно безопасно использовать как синглтоны.

person Les Hazlewood    schedule 23.02.2017