`
y806839048
  • 浏览: 1141624 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
文章列表
在开发中可能会有这样的情景。需要在容器启动的时候执行一些内容。比如读取配置文件,数据库连接之类的。SpringBoot给我们提供了两个接口来帮助我们实现这种需求。这两个接口分别为CommandLineRunner和ApplicationRunner。他们的执行时机为容器启动完成的时候---此时需要的bean都已经具备。   这两个接口中有一个run方法,我们只需要实现这个方法即可。这两个接口的不同之处在于:ApplicationRunner中run方法的参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组。目前我在项目 ...
    全局异常处理几大元素----针对控制层 服务层抛出异常,控制层不捕捉,就会被此全局异常处理捕获   1,@controllerAdvice   控制层的通知---里面的属性值annotations可以设置其对哪种类切面通知 比如controller.class-----对那些类捕捉异常 2,@ExceptionHAndle    里面的value属性可以执行对哪种异常捕获,遇到这种异常就这个对应的方法处理--------对哪种异常捕获       @ControllerAdvice(annotations = RestController.class) @Slf4 ...
  redis集群三种方式:   1,主从----无法自动切换。主挂了就挂了,只是有备份 2,sentile----可以实现自动切换 3,cluster----分布式存储,会对每个节点再使用主从模式       redis序列化几种工具:   序列化1,创输效率 2� ...
    权限校验的控制---1,直接用权限框架                  2,用路径特征---不同的controller用不同的路径前缀---可根据这种特征用不同的权限认证     用JsonWebToken工具hash需要的字段之后生成一段字符串,之后这段字符串可以反向获取之前的明文----这个可以作为token--可以翻译出信息的token   用一个切面结合token实现认证:----尤其外部分享链接可以采用这种方式   1,认证 2,验证是否有效   有效期:每次请求之后无论成功失败都刷新,每次刷新都是重新生成claim除了用户名,密码,还是有事件戳 ...
  自定义注解参数解析器:定义类似通过注解获取对应的参数---登录用户等公用参数   CronJobController 应用:     @ApiOperation(value = "delete job")     @DeleteMapping("/{id}")     public ResponseEntity deleteCronJob(@PathVariable Long id,                                         @ApiIgnore @CurrentUser User user, ...
    打包的插件有maven的jar,war(可执行),还有assembly插件(zip)   打包1,被依赖的模块会在父项目相应操作的时候也同时操作 一般父模块管理打包,触发子模块打包 开源项目一般会有两种打包方式 1,普通的jar,war启动工程的打包方式---直接用jar,war 配置文件中要引用的内容可以不再 pom配置的jar包打包的内容,只要按配置的全路径能找到即可-----   2,对于不是传统的web项目,前台页面会稍微离散一点,只要后端配置中有对应的路径引用到即可,所以会出现,在后端 服务jar没有内容在jar外的内容也可用----一般在jar外的内容 ...
  mybatis中进行三目判断,不同sql结果累加union(尤其对于多种等效权限,资源的准备)    <sql id="selectProjectByUserBaseSql">         SELECT p.*,         IF(s.`id` is NULL, FALSE, TRUE) as 'isStar',         u.`id` as 'createBy.id',         IF(u.`name` is NULL, u.`username`, u.`name`) as 'createBy.username',   ...
  连接数据库 1,获取数据源----配置用相应的数据源类生成数据源---大部分的数据源支持jdbc,所以可以包装成jdbc的数据源,然后连接(获取到了数据源就可以进行一切数据库操作) 2,根据数据源获取连接,从而可以连接数据库   SourceController SourceUtils    getDataSource 这里拓展数据源     dataSource = getDataSource(jdbcUrl, username, password, database, version, isExt);                 connection = dat ...
前言: 最近朋友遇到在安装并启动Tomcat 6.0时,发现一直无法正确启动,主要异常堆栈信息如下: ?
静态文件被项目识别成为视图资源的过程 在mvc过程中放入满足识别即可 至于前后分离则是存ajax返回数据,不需要解析器和mvc跳转 支持前后分离的框架处理登录首页会有controller注解控制跳转,其他的页面都是restcontroller返回json,至于后面的跳转在页面本身做,页面请求页面发起 1,静态文件在资源目录---编译目录可以打包进入 2,mvc指定静态文件路径,然后设置纳入编译目录--跳转,指定解析器--集成至mvc   mvc---(都可配置自定义)   分发跳转---根据静态资源的目录   集成解析器,返回解析结果---根据指明的视图解析器(解析器中也需 ...

文件流的操作

  任何文件都可以转化成流直接操作,或者流再转化成该格式对应的类实例操作   public static void loadAllFromYaml(String yamlPath) throws Exception {         if (StringUtils.isEmpty(yamlPath)) {             return;         }         File yamlFile = new File(yamlPath);         if (!yamlFile.exists()) {             return;         ...
  开源代码用react等做的前端, 一般采用前后分离,前端部署在tomcat的root目录下 nginx处理跨域 或者在主spring项目的resource目录下建立一个文件加放置前端build之后的代码   例如davinci前端后端放在一起发的时候把webapp下的代码用对应前端的build命令build,之后解压复制到davinci-ui文件夹中即可  对于不是web项目的一般前后分离,但是还是集成在一起此时运行需要配置环境变量(除了覆盖代码之外),通过环境变量的路径找到前端路径,以在一起发布  
mybatis代码生成 1,pom配置插件,2,配置生成文件 插件中关联配置生成文件 idea配置了插件之后会出现在右侧plung,直接点击使用    
  davinci连接clickhouse可能会自动给字段加引号,此时需要配置  clickhouse:    name: clickhouse    desc: clickhouse    driver: ru.yandex.clickhouse.ClickHouseDriver    keyword_prefix:     keyword_suffix:     alias_prefix: \"    alias_suffix: \"   davinci集成其他数据源,只要由相关驱动的jar即可直接集成 在已经编译好的代码中pom文件不再由作用 ...
总括: 不同的加载器加载不同的目录下的文件,需要哪个类被哪个加载器加载只要在哪个目录下放置即可   当为了防止反编译对非常规的加密的字节码加载,此时需要自定义加载器先解密,然后正常加载---此时用就自定义加载器     loadClass=findClass(包含defineClass) findclass中通过类的路劲获取到类的字节码(getclass),然后defineClass根据字节码和类的名字返回类的实例   一般是loadClass先加载,找不到父类加载器就用findclass加载(找不到父类加载器的方法????) 一般是直接自定义的加载器对象指定要加载类的路径 ...
Global site tag (gtag.js) - Google Analytics