zoukankan      html  css  js  c++  java
  • 开源项目学习

    vue与权限系统整合

    vue如果集成在java项目中,不单独部署,如何与java项目整合(包含菜单权限管理)?

    Vue相关基础内容

    • Vue.extend

    由于没法像单独的vue项目那样,直接写component组件,在这里可以使用Vue.extend. 有了这个组建构造器,使用 Vue.component('menuItem',menuItem); 进行注册,就可以在项目中使用了。

    springboot下配置多环境配置文件

    在springboot项目下,想要区分开发、测试、预发、生产环境如何实现呢?
    在application.yml配置文件中增加 spring.profiles.active即可。同时添加对应的配置yml文件如下图:
    blob.jpg
    在本项目中,默认只有开发环境(dev)和生产环境(prod)
    在开发中,application.yml文件中配置成开发环境dev,如下图:
    blob.jpg

    那么在打成jar包,发布时应该如何指定对应的环境呢?

    java -jar web-1.0.0.jar --spring.profiles.active=prod
    

    在使用java -jar启动jar程序的时候,加上spring.profiles.active 即可。

    菜单设计与展示

    角色、权限系统设计

    可视化quartz定时任务

    云存储文件上传

    字典管理、系统管理

    各种问题杂记

    url中带#表示什么意思?

    简单来说,对于服务器来说,#后面的被自动忽略了,访问的url还是#号前面的,如:http://localhost:8080/renren-admin/index.html#modules/sys/dept.html 来说,服务器接收到的请求还是http://localhost:8080/renren-admin/index.html ,那#后面的是给到浏览器用的,相当于锚点的概念。
    解析参见: https://www.cnblogs.com/kaituorensheng/p/3776527.html#_label0

    idea的git插件忽略无意义的项目配置等文件

    在FILE->SETTINGS->PLUGINS 中安装.ignore插件,然后新建.ignore文件,如下图
    blob.jpg

    @ConditionalOnProperty 注解

    blob.jpg

    shiro部分


    2.1.1 Subject
    Subject一词是一个安全术语,其基本意思是“当前的操作用户”。称之为“用户”并不准确,因为“用户”一词通常跟人相关。在安全领域,术语“Subject”可以是人,也可以是第三方进程、后台帐户(Daemon Account)、定时作业(Corn Job)或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途,你可以把它认为是Shiro的“用户”概念。
    在程序中你都能轻易的获得Subject,允许在任何需要的地方进行安全操作。每个Subject对象都必须与一个SecurityManager进行绑定,你访问Subject对象其实都是在与SecurityManager里的特定Subject进行交互。
    2.1.2 SecurityManager
    Subject的“幕后”推手是SecurityManager。Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。它是Shiro框架的核心,充当“保护伞”,引用了多个内部嵌套安全组件,它们形成了对象图。但是,一旦SecurityManager及其内部对象图配置好,它就会退居幕后,应用开发人员几乎把他们的所有时间都花在Subject API调用上。
    那么,如何设置SecurityManager呢?嗯,这要看应用的环境。例如,Web应用通常会在Web.xml中指定一个Shiro Servlet Filter,这会创建SecurityManager实例,如果你运行的是一个独立应用,你需要用其他配置方式,但有很多配置选项。
    一个应用几乎总是只有一个SecurityManager实例。它实际是应用的Singleton(尽管不必是一个静态Singleton)。跟Shiro里的几乎所有组件一样,SecurityManager的缺省实现是POJO,而且可用POJO兼容的任何配置机制进行配置 - 普通的Java代码、Spring XML、YAML、.properties和.ini文件等。基本来讲,能够实例化类和调用JavaBean兼容方法的任何配置形式都可使用。
    2.1.3 Realms
    Shiro的第三个也是最后一个概念是Realm。Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当与像用户帐户这类安全相关数据进行交互,执行认证(登录)和授权(访问控制)时,Shiro会从应用配置的Realm中查找很多内容。
    从这个意义上讲,Realm实质上是一个安全相关的DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给Shiro。当配置Shiro时,你必须至少指定一个Realm,用于认证和(或)授权。配置多个Realm是可以的,但是至少需要一个。
    Shiro内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件 等。如果缺省的Realm不能满足需求,你还可以插入代表自定义数据源的自己的Realm实现。
    象其他内部组件一样,由SecurityManager来管理如何使用Realms来获取安全的身份数据。


    shiro 与thymeleaf整合

    添加引用

            <dependency>
                <groupId>com.github.theborakompanioni</groupId>
                <artifactId>thymeleaf-extras-shiro</artifactId>
                <version>2.0.0</version>
            </dependency>
    

    使用方法如<a shiro:hasPermission="sys:menu:save" class="btn btn-primary" @click="add"><i class="fa fa-plus"></i> 新增</a> 当用户具有menu的保存权限才显示这个a标签

    thymeleaf 模板替换路径问题

    <header th:replace="../templates/layout/header :: head"></header>
    <header th:replace="../templates/layout/header :: head"></header>
    使用上面的几个路径一直提示找不到模板 template might not exist or might not be accessible by
    因此跟源码看了下,进行替换比对的代码在AbstractConfigurableTemplateResolver 这个类下面(如下图)
    blob.jpg
    调试发现,前缀用的是classpath:/templates/ 即,这个模板相对路径是相对于templates的
    blob.jpg

    因此thymeleaf在找模板的时候会自动凑够templates文件夹目录寻找,我们的路径应当写成
    <header th:replace="layout/header :: head"></header>
    项目结构图如下:
    blob.jpg

    内置过滤器

    blob.jpg
    https://www.cnblogs.com/koal/p/5152671.html

    idea查看依赖关系

    在pom文件中,右键——》show Dependencies
    blob.jpg
    blob.jpg
    像下面这种红色的表示依赖有问题的,。比如说多次引用等,但是只要不影响编译,不发生报错的其实也不一定非得排除例外。不然,太多了。
    blob.jpg

    验证码

    添加kaptcha 的依赖包

            <dependency>
                <groupId>com.github.axet</groupId>
                <artifactId>kaptcha</artifactId>
                <version>${kaptcha.version}</version>
            </dependency>
    

    配置类:

       @Bean
        public DefaultKaptcha producer() {
            Properties properties = new Properties();
            properties.put("kaptcha.border", "no");
            properties.put("kaptcha.textproducer.font.color", "black");
            properties.put("kaptcha.textproducer.char.space", "5");
            Config config = new Config(properties);
            DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
            defaultKaptcha.setConfig(config);
            return defaultKaptcha;
        }
    

    详细使用方式见: https://www.cnblogs.com/java-spring/p/7793149.html

    jpa中表关联

    如存在实体类SysUserEntity,要体现部门人员关系,需要在SysUserEntity中增加字段 private SysDeptEntity sysDeptEntity;如何配置使得jpa的sql能够自动查询带出来呢?

    	@OneToOne()	//这里因为一个用户只会属于一个部门,所以用的OneToOne
    	@JoinColumn(name="dept_id")		//这里为2个表关联条件字段
    	private SysDeptEntity sysDeptEntity;
    

    @OneToMany、@ManyToOne以及@ManyToMany讲解

  • 相关阅读:
    nginx配置文件详解
    centos 小知识
    nginx 常见问题
    centos7.5 安装nginx
    tomact 配置远程登录
    Centos7 离线安装 mariaDB
    Crontab详细用法-定时任务详解
    新项目push/pull到github
    GIT的基本操作
    hive的安装
  • 原文地址:https://www.cnblogs.com/falcon-fei/p/11060093.html
Copyright © 2011-2022 走看看