项目启动是生成超管名字和密码

超管同样是存在user表里的,但是需要在项目启动的时候在创建超管,不能定死user的相关字段的默认值:
所以有一下写法(user实体类给该有的字段不再赘述)

@Component public class InnerUserInitializer { @Autowired private IUserService userService; @PostConstruct public void initialize() throws Exception { String salt = UUID.randomUUID().toString(); // getEncryptPsw 设计盐值加密 String password = UserUtils.getEncryptPsw("trsadmin", salt); createUser("admin", password, salt); } /** * 创建超管用户 * * @param userName * @param password * @param salt */ @SuppressWarnings("unused") private void createUser(String userName, String password, String salt) { if (userService.findByUserName(userName) == null) { User user = new User(); user.setUserName(userName); user.setDisplayName(userName); user.setPassword(password); user.setExpireAt("0"); user.setSalt(salt); user.setCheckRole(UserUtils.SUPER_ADMIN); user.setRole(UserUtils.SUPER_ADMIN); user.setStatus("0"); user.setOrganizationId("trsadminorganizationid"); String add = userService.add(user,false); } } }

@PostConstruct 作用:
【项目启动是生成超管名字和密码】被@PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。

    推荐阅读