Ошибка запуска Spring boot + Spring boot security start - PullRequest
0 голосов
/ 09 мая 2020

Я делаю проект MVC с пружинной загрузкой и пружинной защитой и jsp. Я просто тренирую свою пружину, и у меня тот же проект работает без весенней загрузки. В настоящее время я перешел на Springboot, и когда я пытаюсь начать, я получаю:

2020-05-09 17: 28: 38.521 INFO 21308 --- [restartedMain] oa c. c. C. [Tomcat]. [Localhost]. [/]: Инициализация Spring встроенного WebApplicationContext 2020-05-09 17: 28: 38.527 INFO 21308 --- [restartedMain] osweb.context.ContextLoader: Root WebApplicationContext: инициализация завершено за 6813 мс 2020-05-09 17: 28: 38.753 WARN 21308 --- [restartedMain] ConfigServletWebServerApplicationContext: исключение во время инициализации контекста - отмена refre sh попытка: org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания bean-компонента с именем inMemoryDatabaseShutdownExecutor, определенным в ресурсе пути к классу [org / springframework / boot / devtools / autoconfigure / DevToolsDataSourceAutoConfiguration.class]: неудовлетворенная зависимость, выраженная через параметр 0 метода inMemoryDatabaseShutdownExecutor; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем 'dataSource', определенным в ресурсе пути к классу [org / springframework / boot / autoconfigure / jdbc / DataSourceConfiguration $ Hikari.class]: создание экземпляра bean-компонента с помощью фабричного метода завершилось неудачно ; вложенное исключение - org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [com.zaxxer.hikari.HikariDataSource]: фабричный метод dataSource вызвал исключение; вложенное исключение: org.springframework.boot.autoconfigure.jdb c .DataSourceProperties $ DataSourceBeanCreationException: не удалось определить подходящий класс драйвера 2020-05-09 17: 28: 38.769 INFO 21308 --- [restartedMain] o. apache .catalina.core.StandardService: Остановка службы [Tomcat] 2020-05-09 17: 28: 38.826 INFO 21308 --- [restartedMain] ConditionEvaluationReportLoggingListener:

************ *************** ПРИЛОЖЕНИЕ НЕ ЗАПУСКАЕТСЯ


Описание:

Не удалось настроить источник данных: атрибут 'url' не указан и не удалось настроить встроенный источник данных.

Причина: не удалось определить подходящий класс драйвера

Понятия не имею, что происходит.

application.properties

# JDBC properties
#
app.datasource.url=jdbc:mysql://localhost:3306/web_customer_tracker?useSSL=false&serverTimezone=UTC
app.datasource.username=springstudent
app.datasource.password=springstudent

# Spring Data JPA properties
spring.data.jpa.repository.packages=com.crm.dao
spring.data.jpa.entity.packages-to-scan=com.crm.beans

#
# SECURITY JDBC properties
#
security.datasource.jdbc-url=jdbc:mysql://localhost:3306/spring_security_demo_bcrypt?useSSL=false&serverTimezone=UTC
security.datasource.username=springstudent
security.datasource.password=springstudent
security.datasource.driver-class-name= com.mysql.jdbc.Driver

Конфигурация:

    @Configuration
    @EnableWebSecurity
    public class DemoSecurityConfig extends WebSecurityConfigurerAdapter {

        // add a reference to our security data source

        @Autowired
        @Qualifier("securityDataSource")
        private DataSource securityDataSource;


        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {

            auth.jdbcAuthentication().dataSource(securityDataSource);

        }

        @Override
        public void configure(WebSecurity web) throws Exception {
            web.ignoring().antMatchers("/resources/**");
        }

        @Override
        protected void configure(HttpSecurity http) throws Exception {

            System.out.println("aplicando configuracion");
            http.authorizeRequests()
            .antMatchers("/employees/showForm*").hasAnyRole("MANAGER", "ADMIN")
            .antMatchers("/employees/save*").hasAnyRole("MANAGER", "ADMIN")
            .antMatchers("/employees/delete").hasRole("ADMIN")
            .antMatchers("/employees/**").hasRole("EMPLOYEE")
            .antMatchers("/resources/**").permitAll()
            .antMatchers("/showMyLoginPage").permitAll()
            .and()
            .formLogin()
                .loginPage("/showMyLoginPage")
                .loginProcessingUrl("/authenticateTheUser")
                .permitAll()
            .and()
            .logout().permitAll()
            .and()
            .exceptionHandling().accessDeniedPage("/access-denied");

        }


    }

Конфигурация:

    @Configuration
@EnableJpaRepositories(basePackages={"${spring.data.jpa.repository.packages}"})
public class DemoDataSourceConfig {

    @Primary
    @Bean
    @ConfigurationProperties(prefix="app.datasource")
    public DataSource appDataSource() {
        return DataSourceBuilder.create().build();
    }

    @Bean
    @ConfigurationProperties(prefix="spring.data.jpa.entity")
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder, DataSource appDataSource) {
        return builder
                .dataSource(appDataSource)
                .build();
    }

    @Bean
    @ConfigurationProperties(prefix="security.datasource")
    public DataSource securityDataSource() {
        return DataSourceBuilder.create().build();
    }
}

Заранее благодарим за вашу помощь.

1 Ответ

0 голосов
/ 09 мая 2020

В вашем файле свойств ...

Измените app.datasource.* на spring.datasource.*, как показано ниже ..

# JDBC properties
#
spring.datasource.url=jdbc:mysql://localhost:3306/web_customer_tracker?useSSL=false&serverTimezone=UTC
spring.datasource.username=springstudent
spring.datasource.password=springstudent

Не удалось настроить атрибут DataSource: 'url' не указан, и встроенный источник данных не может быть настроен.

Это сообщение об ошибке дает подсказку, что при поиске свойства URL-адреса базы данных ... (у них есть фиксированное имя свойства для этого ... например, spring.datasource.* ) Или Иначе ... если вы используете любую встроенную базу данных, например DB2, то она не требует url / username / password, достаточно только зависимости.

В вашем случае она не встроена база данных .. чтобы имя свойства, которое ищет Spring, должно быть указано правильно.

...