1.很多情况,在项目初始化部署的时候,有些初始化的数据需要自动执行,鉴于此种情况,可根据以下操作实现。
2.建立类实现springboot的CommandLineRunner接口
3.重写接口的run方法,并将要初始化执行的方法,写在run方法里面。
4.示列:
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.logging.LogFactory;
import org.mongodb.morphia.Datastore;
import org.mongodb.morphia.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.CommandLineRunner;
/** @version:(1.0)
* @ClassName InitializationData
* @Description: (初始化数据)
*/
@Component
public class InitializationData implements CommandLineRunner {
protected Log log=LogFactory.getLog(InitializationData.class);
// @Value("classpath:data/message.json")
// private Resource resource;
@Autowired
@Qualifier("get")
private Datastore dfds;
@Autowired
private UserService userService;
@Override
public void run(String... args) throws Exception {
initSuperAdminData();
}
/**
* 初始化默认超级管理员数据
*/
private void initSuperAdminData() {
DBCollection adminCollection = dfds.getCollection(Role.class);
if (adminCollection == null || adminCollection.count() == 0) {
try {
User user = new User();
user.setId(11);
user.setName("11");
user.setMobile("11");
user.setPassword(DigestUtils.md5Hex("11"));
user.setCreateTime(DateUtil.currentTimeSeconds());
dfds.save(user);
} catch (Exception e) {
e.printStackTrace();
}
Role role = new Role(11, "11", (byte) 6, (byte) 1, 0);
dfds.save(role);
log.info("\n" + ">>>>>>>>>>>>>>> 默认管理员数据初始化完成 <<<<<<<<<<<<<");
}
}
}
}