返回介绍

5.6 运行与发布

发布于 2025-04-26 13:26:33 字数 3612 浏览 0 评论 0 收藏

本章实例工程的完整代码可以通过 IDEA 直接从 GitHub 中检出: https://github.com/chenfromsz/spring-boot-security.git 。实例工程中包含两个模块:mysql 和 web,其中 mysql 模块提供数据库管理功能,web 模块集成了安全管理和一个数据管理后台的功能,即用户登录后可以对用户、部门和角色等各个对象的数据进行管理。

5.6.1 系统初始化

为了初始化一个能够登录系统的用户,我们在工程模块 mysql 中编写了一个 JUint 测试程序,用来生成一个具有所属部门和拥有角色的用户,如代码清单 5-25 所示。测试程序执行时,将初始化数据库,并生成一个部门和一个角色,同时创建一个初始用户,用户名和密码都为 user,这个用户默认具有管理员的权限。

代码清单 5-25 系统初始化测试程序

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {JpaConfiguration.class})
public class MysqlTest {
    @Autowired
    UserRepository userRepository;
    @Autowired
    DepartmentRepository departmentRepository;
    @Autowired
    RoleRepository roleRepository;
    @Before
    public void initData(){
        userRepository.deleteAll();
        roleRepository.deleteAll();
        departmentRepository.deleteAll();
        Department department = new Department();
        department.setName("开发部




");
        departmentRepository.save(department);
        Assert.notNull(department.getId());
        Role role = new Role();
        role.setName("admin");
        roleRepository.save(role);
        Assert.notNull(role.getId());
        User user = new User();
        user.setName("user");
        BCryptPasswordEncoder bpe = new BCryptPasswordEncoder();
        user.setPassword(bpe.encode("user"));
        user.setCreatedate(new Date());
        user.setDepartment(department);
        userRepository.save(user);
        Assert.notNull(user.getId());
    }
    @Test
    public void insertUserRoles(){
        User user = userRepository.findByName("user");
        Assert.notNull(user);
        List<Role> roles = roleRepository.findAll();
        Assert.notNull(roles);
        user.setRoles(roles);
        userRepository.save(user);
    }
}

这样,就可以在 IDEA 的 Edit Configuration 中增加一个 JUint 测试配置项目,模块选择 mysql,工作目录选择 mysql 模块所在的工程根目录,测试类选择上面的测试程序,并将配置保存为 MysqlTest。

然后在 MySQL 服务器中创建一个 test 数据库,并在测试程序所在目录中打开配置类 JpaConfiguration 的实现代码,配置数据源中的 url、username、password,如代码清单 5-26 所示。

代码清单 5-26 测试程序的 JpaConfiguration 数据源配置

@Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:// localhost:3306/test?characterEncoding=
utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("12345678");
        return dataSource;
    }

最后运行测试项目 MysqlTest,运行成功后生成一个初始用户,用户名和密码为 user,并且该用户的所属部门为“开发部”,拥有一个管理员角色为 admin。

5.6.2 系统运行与发布

首先,在 web 模块的配置文件 application.yml 中配置连接 MySQL 服务器的数据源,其他 JPA 和安全配置可以保持不变。

如果在 IDEA 中运行应用,可以在 IDEA 的 Edit Configuration 中增加一个 Spring Boot 配置项目,模块选择 web,工作目录选择 web 模块所在的工程根目录,主程序选择 com.test.web.WebApplication,并将配置项目保存为 web。

然后运行配置项目 web 即可启动 web 应用,启动成功后,在浏览器中输入网址 http://localhost 访问应用。

在出现的登录界面中,输入上面生成的用户名和密码 user,并输入正确的验证码,即可登录系统。登录系统后,可对用户、部门和角色进行管理。

如果要发布应用,既可以在 IDEA 中增加一个 Maven 配置,也可以打开一个命令行窗口,将目录切换到工程的根目录,然后执行下列指令来完成。

mvn clean package

注意 使用上面的发布指令将会自动调用 MysqlTest 测试程序,这将删除数据库的所有资料,执行初始化操作,然后创建一个初始用户,用户名和密码都为 user,并且具有管理员的权限。如果不想自动调用测试程序,可在上面指令中加上参数:-D skipTests。

打包成功后可在命令行窗口中,运行下列指令启动系统(假如当前目录为工程根目录)。

java –




jar web/target/web-1.0-SNAPSHOT.jar

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。