【问题标题】:Auto insert default record when deploying Spring MVC App with Spring Security使用 Spring Security 部署 Spring MVC App 时自动插入默认记录
【发布时间】:2012-07-29 19:13:52
【问题描述】:

我正在寻找一种在部署我的 spring mvc 应用程序时使用 JPA 自动插入默认管理员帐户的方法。

我的数据库是基于实体生成的。

我想在每次部署应用程序时开始插入默认管理员用户、分配角色。

【问题讨论】:

    标签: spring spring-mvc spring-security jpa-2.0


    【解决方案1】:

    这取决于您使用的 JPA 实现。 如果您使用Hibernate,您可以将import.sql 文件(包含要加载的记录)添加到类路径中。更多信息here.

    作为一种解决方法,您也可以使用dbunit 工具。

    【讨论】:

      【解决方案2】:

      我建议使用迁移实用程序来使您的数据库与您的代码库保持同步 - 这些通常是 DDL,但插入默认管理员用户、分配角色等的查询也可以是此迁移实用程序的一部分。有非常好的可用 - Flyway 是我用过的一个,Liquibase 是另一个。

      您也可以查看 Flyway 主页上的不同迁移实用程序的非常好的比较。

      【讨论】:

        【解决方案3】:

        我使用 CommandLineRunner 接口。

        @Component    
        public class CommandLineAppStartupRunner implements CommandLineRunner {
            @Autowired
            UserRepository userRepository;
        
            @Override
            public void run(String...args) throws Exception {
                User admin = new user(firstName);
                userRepository.save(admin);
            }
        }
        

        在应用启动之前,这个类将被执行。

        你可以在这里找到其他方法:Guide To Running Logic on Startup in Spring

        【讨论】:

          猜你喜欢
          • 2021-08-22
          • 1970-01-01
          • 2014-10-08
          • 2017-11-21
          • 1970-01-01
          • 2016-06-13
          • 2011-10-30
          • 1970-01-01
          • 2023-03-27
          相关资源
          最近更新 更多