J'ai googlé UserCredentialsDataSourceAdapter, et ce que j'ai vu est les configurations basées sur XML pour l'utilisation de UserCredentialsDataSourceAdapter. Mon application utilise config java:Comment configurer UserCredentialsDataSourceAdapter en utilisant le code java?
public class SpringWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
appContext.register(ApplicationContextConfig.class);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher", new DispatcherServlet(appContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
@Configuration
@ComponentScan("com.ambre.pta")
@EnableTransactionManagement
@PropertySources({
@PropertySource("classpath:fr/global.properties"),
@PropertySource("classpath:fr/main.properties"),
@PropertySource("classpath:fr/admin.properties"),
@PropertySource("classpath:fr/referentiel.properties"),
@PropertySource("classpath:fr/departement.properties"),
@PropertySource("classpath:fr/exercice.properties"),
@PropertySource("classpath:fr/defi.properties")
})
public class ApplicationContextConfig {
/**
* méthode permettant d'accéder les fichiers de ressources tels que les langues
* @return un gestionnaire de fichiers de ressources
*/
@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
return new PropertySourcesPlaceholderConfigurer();
}
/**
* méthode permettant de préciser l'emplacement et l'extension des vues jsp
* @return un gestionnaire de vue
*/
@Bean(name = "viewResolver")
public InternalResourceViewResolver getViewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
/**
* méthode permettant de spécifier la connexion à la base de données
* @return un gestionnaire de connexion à la base de données
*/
@Bean(name = "dataSource")
public DataSource getDataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
dataSource.setUsername("pta");
dataSource.setPassword("pta");
return dataSource;
}
/**
* méthode permettant d'obtenir un gestionnaire de session hibernate
* @param dataSource instance de la connexion à la base de données
* @return un gestionnaire de session hibernate
*/
@Autowired
@Bean(name = "sessionFactory")
public SessionFactory getSessionFactory(DataSource dataSource) {
LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);
sessionBuilder.scanPackages("com.ambre.pta.model");
return sessionBuilder.buildSessionFactory();
}
/**
* méthode permettant de gérer automatiquement la gestion de transaction dans les requêtes sans plus avoir à commencer, valider ou annuler la transaction
* @param sessionFactory le gestionnaire de session hibernate
* @return un gestionnaire automatique de transaction
*/
@Autowired
@Bean(name = "transactionManager")
public HibernateTransactionManager getTransactionManager(SessionFactory sessionFactory) {
HibernateTransactionManager transactionManager = new HibernateTransactionManager(sessionFactory);
return transactionManager;
}
/**
* permet d'instancier un objet d'accès aux données qu'on peut utiliser dans les controleurs
* @param sessionFactory le gestionnaire de session hibernate
* @return un objet d'accès aux données
*/
@Autowired
@Bean(name = "utilisateurDao")
public UtilisateurDAO getUtilisateurDao(SessionFactory sessionFactory) {
return new UtilisateurDAOImpl(sessionFactory);
}
}
Alors, comment configurer UserCredentialsDataSourceAdapter dans mon cas?