唐宋元明清 唐宋元明清
首页
  • 基础

    • Java基础
  • 工具

    • hutool
    • commons
  • 框架

    • Spring Boot相关
  • 设计模式

    • 设计模式入门
  • Hadoop

    • Hadoop分布式搭建
    • Hadoop高可用搭建
    • 集群端口
    • 代码demo
  • Zookeeper

    • Zookeeper集群搭建
  • Hive

    • Hive集群搭建
    • Hive相关
    • HSQL
  • Kafka

    • Kafka集群搭建
  • HBase

    • HBase集群搭建
    • HBase基础学习
  • Spark

    • Spark环境搭建
    • Spark相关知识
  • Flink

    • Flink环境搭建
    • Flink学习
  • Flume

    • Flume安装配置
    • Flume高可用集群安装
    • Flume相关学习
  • Sqoop

    • Sqoop安装配置
    • Sqoop使用
  • 其他

    • docker
  • Oracle

    • Oracle相关知识杂记
    • 系统函数篇
    • 与MySQL语法区别
  • MySQL

    • MySQL知识点
  • Python

    • Python简单语法
    • Python操作Office
    • Python类库学习
    • Python爬虫
  • Shell

    • Shell基础
    • Shell命令行
  • Scala

    • 语法学习
  • 正则表达式

    • 正则基础
  • 调度

    • 调度工具
  • 前端

    • 前端相关
  • 杂记

    • 常用工具或网站
    • 琐碎知识
  • 摘录

    • 摘录
GitHub (opens new window)
首页
  • 基础

    • Java基础
  • 工具

    • hutool
    • commons
  • 框架

    • Spring Boot相关
  • 设计模式

    • 设计模式入门
  • Hadoop

    • Hadoop分布式搭建
    • Hadoop高可用搭建
    • 集群端口
    • 代码demo
  • Zookeeper

    • Zookeeper集群搭建
  • Hive

    • Hive集群搭建
    • Hive相关
    • HSQL
  • Kafka

    • Kafka集群搭建
  • HBase

    • HBase集群搭建
    • HBase基础学习
  • Spark

    • Spark环境搭建
    • Spark相关知识
  • Flink

    • Flink环境搭建
    • Flink学习
  • Flume

    • Flume安装配置
    • Flume高可用集群安装
    • Flume相关学习
  • Sqoop

    • Sqoop安装配置
    • Sqoop使用
  • 其他

    • docker
  • Oracle

    • Oracle相关知识杂记
    • 系统函数篇
    • 与MySQL语法区别
  • MySQL

    • MySQL知识点
  • Python

    • Python简单语法
    • Python操作Office
    • Python类库学习
    • Python爬虫
  • Shell

    • Shell基础
    • Shell命令行
  • Scala

    • 语法学习
  • 正则表达式

    • 正则基础
  • 调度

    • 调度工具
  • 前端

    • 前端相关
  • 杂记

    • 常用工具或网站
    • 琐碎知识
  • 摘录

    • 摘录
GitHub (opens new window)
  • Java相关知识
  • 基础

    • Java基础
    • Java扩展
  • 工具

    • hutool工具包
    • Commons类库
    • SQL解析工具
  • 框架

    • Spring Boot相关
      • 知识点
        • Spring 配置文件
        • Spring 配置文件优先级(从高到低)
        • 启动参数指定配置文件
        • Spring Boot项目中读取application配置文件中配置
        • Spring Boot实体类时间格式化
        • 事务注解
        • 国内最好的maven repository
        • 有时间了解一下自动部署相关
      • 其他
        • 工作Spring + Strusts2 + EXTJS5
  • 设计模式

    • 设计模式入门
    • 策略模式
    • 观察者模式
    • 装饰者模式
    • 工厂模式
    • 单例模式
    • 命令模式
    • 适配器模式与外观模式
    • 模板方法模式
    • 迭代器与组合模式
    • State 模式
    • 代理模式
  • Java相关
  • 框架
Ai
2022-02-28
目录

Spring Boot相关

# 知识点

# Spring 配置文件

# Spring 配置文件优先级(从高到低)

文件优先级

  1. properties配置文件
  2. yml配置文件
  3. yaml配置文件

文件位置优先级

  1. 直接子目录/config
  2. 项目根目录/config
  3. 项目根目录
  4. classpath根config/
  5. classpath根目录下的

# 启动参数指定配置文件

# 精确读取外部配置文件
java  -jar -Dspring.profiles.active=test  xxx.jar

# 改变主配置文件名
java -jar foo.jar --spring.config.name=spring


# 使用指定目录
java  -Dspring.profiles.active=test -jar comet-service/target/xxx.jar --spring.config.location=/tmp/
# 使用 optional,当目录路径不存在时不报错
java  -Dspring.profiles.active=test -jar comet-service/target/xxx.jar --spring.config.location=optional:/tmp/


# spring.config.additional-location # 不会覆盖主配置文件中的设置,而是作为补充

# Spring Boot项目中读取application配置文件中配置

  • 使用@Value方式
@Value("${spring.kafka.topic}")
private String topic;
  • 使用Environment方式
@Autowired  
private Environment env;  
      
env.getProperty("spring.kafka.topic");
  • @ConfigurationProperties(prefix = "") 注解
1、在application.yml中添加配置
application:
  serverConfig:
    address: localhost
    port: 22
    username: geiri
    password: 12345678
    
2.建配置类
package com.pn.ebs.config;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties(prefix = "application")
public class ApplicationProperties {
 
    private ServerConfig serverConfig = new ServerConfig();
 
    public ServerConfig getServerConfig() {
        return serverConfig;
    }
    public final class ServerConfig{
        private String address;
        private String port;
        private String username;
        private String password;
        // geter/setter 此处略
    }
 
}

# Spring Boot实体类时间格式化

// 返回时间格式
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")

// 传入时间格式
@DateTimeFormat(pattern ="yyyy-MM-dd")

# 事务注解

Spring Boot中实现事务没有额外的Jar包,还是基本的数据库访问包,比如mybatis

注解事务@Transactional

@Service
public class PersonService {
    @Resource
    private PersonMapper personMapper;

    @Resource
    private CompanyMapper companyMapper;

    @Transactional(rollbackFor = {RuntimeException.class, Error.class})
    public void saveOne(Person person) {
        Company company = new Company();
        company.setName("tenmao:" + person.getName());
        companyMapper.insertOne(company);
        personMapper.insertOne(person);
    }
}

注解属性

  • rollbackFor:触发回滚的异常,默认是RuntimeException和Error
  • isolation: 事务的隔离级别,默认是Isolation.DEFAULT也就是数据库自身的默认隔离级别,比如MySQL是ISOLATION_REPEATABLE_READ可重复读

这样就可以了,不需要其他配置。
ps:网络上还说要在@SpringBootApplication上添加注解@EnableTransactionManagement,已经不需要了

原文 (opens new window)

# 国内最好的maven repository

方法1:全局配置:修改maven根目录下的conf文件夹中的setting.xml文件,内容如下:

<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>

方法2:单项目配置: pom.xml文件里添加

<repositories>  
        <repository>  
            <id>alimaven</id>  
            <name>aliyun maven</name>  
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
            <releases>  
                <enabled>true</enabled>  
            </releases>  
            <snapshots>  
                <enabled>false</enabled>  
            </snapshots>  
        </repository>  
</repositories> 
===========================================
<repositories>
        <repository>
            <id>central</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <layout>default</layout>
            <!-- 是否开启发布版构件下载 -->
            <releases>
                <enabled>true</enabled>
            </releases>
            <!-- 是否开启快照版构件下载 -->
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories> 

# 有时间了解一下自动部署相关

# 其他

# 工作Spring + Strusts2 + EXTJS5

分层

  • action层类似于controller
  • service相当于service层
  • BgdDataSource类似于dao层(负责与数据库交互,但是sql在service层作为参数传入)

配置文件

  • Struts-Spring集成web.xml(未详细了解)

Spring监听器加载spring上下文文件

  • Spring的配置文件applicationContext.xml

注册实体类Spring beans的路径,创建action

  • struts.xml

配置action路径,与spring配置对应

1-1.png (opens new window)

EXT渲染流程

参考链接 (opens new window)

Ext.Panel为例(其他类似):

将一个Panel显示在浏览器中,其过程叫做render(渲染)。有这么几道工序:
第一、触发”beforeRender”事件
第二、得到这个Panel的父节点(针对DOM来说),即容器,也就是供Panel入住的那个容器
第三、设置rendered=true
第四、调用onRender方法,这步是最重要的,也就是如何将组件显示在浏览器上,涉及到很多流程,一会详解
第五、设置这个panel的css
第六、触发”render”事件,指的是当render完成后,触发的事件
第七、调用aferRender,这步和第四步一样,是很重要的流程之一
第八、看看要不要将这个panel隐藏或者失效,如果用户设置了hidden或者disable
第九、设置这个panel的位置,也就是doLayout,布局

EXT函数及选择器

// 1. $.post()方法
$.post("/xx/xx/xx.action", {
    para: $.trim(code)
}, function (jsondata) {
    if(jsondata.success){

    }else{

    }
}, "json")

// 2. 自加载函数
Ext.onReady(function () {});

// 3. EXT选择器 根据组件类型(xtype属性)获取组件
Ext.ComponentQuery.query();
// 实例
render : function (self){
    Ext.query('textarea[name="ALARM_DESC"]')[0].outerHTML = "<div name = 'ALARM_DESC' style = 'background:#E6E6E6; width: 100%; height: 120px; padding: 4px 6px 3px 6px'>" + self.value + "</div>";
    // document.getElementsByName("ALARM_DESC")[0].outerHTML = "<div name = 'ALARM_DESC' style = 'background:#E6E6E6; width: 100%; height: 120px; padding: 4px 6px 3px 6px'>" + self.value + "</div>";
    Ext.get(Ext.query('div[name="ALARM_DESC"] a')).applyStyles('color:#0000FF');
    // $('div[name="ALARM_DESC"] a').css("color", "#0000FF")

    // a标签禁用
    // Ext.get(Ext.query('div[name="ALARM_DESC"] a')).applyStyles('color: red; pointer-events: none;');
}

// 4. 获取表格选中行
[Grid].getSelectionModel().getSelection();  // 多行
[getGrid].getCurrentRecord();               // 单行

问题

  1. spring和struts2整合时:spring接管了action对象的创建,所以一定要在spring配置文件中配置action,这里需要注意的是配置中的id时,要与struts.xml配置action中的class一致
  2. EXT框架:后台返回时, "success"一定要返回true, 否则store不会刷新, 还是缓存的内容
  3. 要根据数据库里的字段生成a标签:ext尝试无果后, 选择在render事件中用document.xxx.outerHTML直接修改dom元素, 暂时未发现bug
编辑 (opens new window)
上次更新: 2024/09/10, 20:38:55
SQL解析工具
设计模式入门

← SQL解析工具 设计模式入门→

Theme by Vdoing | Copyright © 2022-2025 Ai | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×