Я использую Spring security AuthenticationSuccessHandler для моей проверки входа.Как внедрить прототип bean в Spring AuthenticationSuccessHandler реализация
@Component
public class LoginAuthenticationHandler implements AuthenticationSuccessHandler {
….
Я инъекционный UserData в LoginAuthenticationHandler следующий
@Autowired
UserData userData;
UserData должен быть прототипом.
Когда я печатаю хэш-код userData внутри LoginAuthenticationHandler для разных пользователей [во время входа пользователя], хеш-код такой же. Он говорит, что компонент UserData не работает как прототип.
Это определение LoginAuthenticationHandler из весенне-security.xml
<beans:bean id="authenticationSuccessHandler" class="com.org.login.handler.LoginAuthenticationHandler" scope="prototype">
</beans:bean>
Это UserData боб класс
@Service
@Scope("prototype")
public class UserDataImpl implements UserData {
Что это возможность сделать UserData 'реальная' прототип
Фактически он работает как прототип. Вы получаете новый экземпляр для каждого запроса нового экземпляра. Однако единственный созданный экземпляр - во время запуска. Внедрение прототипа в одноэлемент создает конкретный экземпляр для этого одноэлементного компонента. Если вы введете 'UserData' на 2 разных компонента, вы получите 2 экземпляра. В shor tdon't autwire, если вы хотите, чтобы он вел себя как прототип, просмотрите его или, возможно, используйте компонентный объект с запросом. Который все еще дает тот же хэш-код, но затем для динамического прокси. –