Spring security config httpSecurity object method description

Spring security config httpSecurity object method description

1. anyRequest | 匹配所有请求路径
2. access | SpringEl表达式结果为true时可以访问
3. anonymous | 匿名可以访问
4. denyAll | 用户不能访问
5. fullyAuthenticated | 用户完全认证可以访问(非remember-me下自动登录)
6. hasAnyAuthority | 如果有参数,参数表示权限,则其中任何一个权限可以访问
7. hasAnyRole | 如果有参数,参数表示角色,则其中任何一个角色可以访问
8. hasAuthority | 如果有参数,参数表示权限,则其权限可以访问
9. hasIpAddress | 如果有参数,参数表示IP地址,如果用户IP和参数匹配,则可以访问
10. hasRole | 如果有参数,参数表示角色,则其角色可以访问
11. permitAll | 用户可以任意访问
12. rememberMe | 允许通过remember-me登录的用户访问
13. authenticated | 用户登录后可访问


配置案例

    protected void configure(HttpSecurity http) throws Exception {

        http
                //登入
                .formLogin().loginPage("/login")
                .successHandler(this.loadAuthSuccessProcessor())
                .failureHandler(this.loadAuthFailedProcessor())
                //登出
                .and().logout()
                .logoutUrl("/logout") // 退出登录
                .logoutSuccessHandler(this.loadLogoutSuccessProcessor())

                //异常
                .and().exceptionHandling()
                .accessDeniedHandler(this.loadNoPermissionProcessor())
                .authenticationEntryPoint(this.loadNoAuthProcessor())

                //授权
                .and().authorizeRequests()
                //匿名访问
                .antMatchers("/", "/login", "/register").permitAll()
                .antMatchers("/favicon.ico","/robots.txt").permitAll()
                .antMatchers("/js/**","/css/**","/img/**").permitAll()
                .antMatchers("/files/**","/ui/**").permitAll()
                .antMatchers("/swagger-ui/**").permitAll()
                //其它登录访问
                .anyRequest().authenticated()

                //禁止csrf
                .and().csrf().disable()
                //IFrame拒绝问题
                .headers().frameOptions().disable()
        ;
    }

Spring Security 常用注解

1. @EnableGlobalMethodSecurity(securedEnabled=true,prePostEnabled = true)
securedEnabled 确定安全注解 [@Secured] 是否启用
prePostEnabled 确定 前置注解[@PreAuthorize,@PostAuthorize,…] 是否启用

2. @Secured

用于判断是否具有角色,写在方法或类上,参数以 ROLE_开头

3. @PreAuthorize

访问方法或类在执行之前先判断权限,大多情况下都是使用这个注解,注解的参数和access()方法参数取值相同,都是权限表达式。

4. @PostAuthorize

方法或类执行结束后判断权限,一般不会使用到。

5. @PreFilter(filterTarget="ids”, value="filterObject%2==0”)

对传入参数进行过滤,为true才通过,filterTarget指定传入方法参数的变量名ids,对ids进行过滤,为true才通过

6. @PostFilter("filterObject.username == 'admin1')
对返回结果进行过滤,为true才通过

...

 

发表在 java | Spring security config httpSecurity object method description已关闭评论

spring profiles | 多环境

SpringBoot的2.4.0之后,对多文件的yml配置进行了更新,旧方式的配置都被划上一道线,也就是说被废弃了,不过还可以正常使用。而properties配置方式没有变化。

2.4.0之前

spring:
  profiles:
    active: dev
---
spring:
  profiles: test
server:
  port: 1111
---
spring:
  profiles: dev
server:
  port: 2222

2.4.0之后

spring:
  profiles:
    active: dev
---
spring:
  config:
    activate:
      on-profile: test
server:
  port: 1111
---
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 2222

即环境配置使用 spring.config.activate.on-profile 替换了 spring.profiles

on-profile: dev  指,当环境是dev时,配置生效,非dev时配置不生效

spring.active, spring.include 并没有改变

配置组应用

spring:
  profiles:
    # 默认环境
    include: database,runtime
    group:
      # test 环境
      test: databasetest,runtimetest
      # prod 环境
      prod: databaseprod,runtimeprod

若在新旧版本应急其间或包版本升级,短时间不方便升级为新的模式,则可以通过配置指定为旧的的处理逻辑,但此模式不建议长时使用。

通过如下参数进行配置:

spring.config.use-legacy-processing = true

.

 

发表在 java | spring profiles | 多环境已关闭评论

常用天文概念

弧分(Arc minute):1度的1/60称为1弧分。1弧分又分为60弧秒
光年(Light-year):光在一年中走过的路程,等于6万亿英里(9470000000000千米)。
星等(Magnitude):天体的亮度。星等每降低一等,亮度增加为前一星等的2.51倍。
岁差(Precession):地球自转以25800年为周期进行摆动,造成天极和天球坐标移动,称为岁差
1 Α α alpha a:lf 阿尔法
2 Β β beta bet 贝塔
3 Γ γ gamma ga:m 伽马
4 Δ δ delta delt 德尔塔
5 Ε ε epsilon ep`silon 伊普西龙
6 Ζ ζ zeta zat 截塔
7 Η η eta eit 艾塔
8 Θ θ thet θit 西塔
9 Ι ι iot aiot 约塔
10 Κ κ kappa kap 卡帕
11 ∧ λ lambda lambd 兰布达
12 Μ μ mu mju 缪
13 Ν ν nu nju 纽
14 Ξ ξ xi ksi 克西
15 Ο ο omicron omik`ron 奥密克戎
16 ∏ π pi pai 派
17 Ρ ρ rho rou 肉
18 ∑ σ sigma `sigma 西格马
19 Τ τ tau tau 套
20 Υ υ upsilon jup`silon 宇普西龙
21 Φ φ phi fai 佛爱
22 Χ χ chi phai 西
23 Ψ ψ psi psai 普西
24 Ω ω omega o`miga 欧米伽

“天文单位”指的是太阳到地球的距离。天文常数之一。天文学中测量距离,特别是测量太阳系内天体之间的距离的基本单位,以A表示。
天文单位是以地球到太阳的平均距离为一个天文单位。一天文单位约等于1.496亿千米。
例如: 光年,长度单位(ly),指光在真空中一年时间中行走的距离,即约九万四千六百亿公里。更正式的定义为:在一儒略年的时间中(即365.25日,而每日相等于86400秒),在自由空间以及距离任何引力场或磁场无限远的地方,一光子所行走的距离。因为真空中的光速是每秒299,792,458米(准确),所以一光年就等于 9,460,730,472,580,800米

 

 

.

发表在 space | 常用天文概念已关闭评论

三角测量

版权声明:文章来自网络

原文:https://zhuanlan.zhihu.com/p/20265735

原文:微信原文

诗经的《蒹葭》怎么说来着?

……

咋扯这了?

蒹葭苍苍,白露为霜。

所谓伊人,在水一方。

溯洄从之,道阻且长。

溯游从之,宛在水中央。

蒹葭萋萋……

够了,后面就是你们文科生“搞不定的事情说三遍”那套。

……

理工男这时就已经在盘算了:“测测伊人离我到底有多远?”

在河对面,看你怎么量?

理工男先在A点掏出量角器,测了个直角后沿直角方向走任意长度l到了B点,再量一下和伊人的夹角,记为“好望角”α

这个我居然懂!

所以

嗯,高数忘了,中学数学还没忘

……

好了,知道了和伊人的距离,接下来呢?

这时,一个真正的理工男会陷入沉思:反正都要测两个角,凭啥要用直角这么特殊的角度呢?

这么快就把伊人给忘了……

这次理工男先在A点测了一个角度β,然后走任意长度l到了B点,再量一下和伊人的夹角α

嗯,tan函数不够性感

这样就舒服了,所以

当年,这个我也会……
对了,如果是巫山神女咋办:
妾在巫山之阳,高丘之阻,
旦为朝云,暮为行雨。
朝朝暮暮,阳台之下。

中国古代还真难得有个理工男考虑过这问题,刘徽的《海岛算经》……

就是那算圆周率、写《九章算术》的刘徽?莫非真读完《高唐赋》开始琢磨这问题?女神果然有范,不光一堆文科生千古吟咏,理工男也来凑热闹。

三国时代搞出这套测量学来,放眼世界那可是牛哄哄呀,说句国人最爱听的话“超越西方一千年”。可惜接着就没有然后了……

所以有科学史大家李约瑟之问:“尽管中国古代对人类科技发展做出了很多重要贡献,但为什么科学和工业革命没有在近代的中国发生?”

扯回怎么算女神高度的问题:

一模一样的步骤:先在A点测了和女神的角度α,然后走任意长度l到了B点,再量一下和女神的夹角β

推导就不给了,显然可得:

这两个问题合在一起,就能确定立体空间里一个点的位置了,前面视频里运动捕捉的基本原理就是这样。

嗯,在理工男的眼里,女神和无人机是一样的……
好了,课上完了吧?

这时,一个真正的理工男再度陷入了沉思:地球是圆的呀,用平面来代替球面不大好吧……应该是这样:

然后根据球面上三角的基本关系:

得到……

开始头疼了,打住打住,没事折腾这个干什么?

这哪是没事,你想想当年大航海时代,要算地球上两地的距离呀,要绘制地图呀……

这倒也是,你告诉我结果就行,地球上AB两地距离是怎么样的?

λ、L分别是两地的纬度、经度,R是地球半径

还好有先见之明,果然开始不懂了……

解决了球面问题后,真正的理工男第三次陷入了沉思:如果不是球面,而是任意曲面呢?

又来了,再问一次:这次又为啥?

为啥?举个例子吧,你知道有个叫爱因斯坦的理工男搞出了广义相对论,空间是会被质量扭曲的,而扭曲的空间显然不是球面……

再说了,即使一点用处都没有,想想这样的问题也很好玩呀。费曼(Richard Feynman)同学说过:Physics is like sex. Sure, it may give some practical results, but that's not why we do it.

“物理就像性爱,虽然有时确实会产生些实用的结果,但这不是我们做它的原因”……看来数学也一样。

你知道平面上连接两点最短的线是直线;球面上是过这两点的大圆的弧;任意曲面上,这根最短的线叫测地线(geodesic)。

你随便逮个理工男,问他:“喂,这个曲面上的geodesic怎么算?”八成会让他出一身冷汗。

这么好玩,找机会得试试。

让你看一眼广义相对论的测地线公式:

……

你们王肃不是说过:“读书百遍,其义自见”吗?

……

(落幕,收工)

发表在 math | 三角测量已关闭评论

密码保护:天文/轨道计算/星下点/天球面积

此内容受密码保护。如需查阅,请在下列字段中输入您的密码。

发表在 space | 密码保护:天文/轨道计算/星下点/天球面积已关闭评论

密码保护:航天动力学库案例

此内容受密码保护。如需查阅,请在下列字段中输入您的密码。

发表在 space | 密码保护:航天动力学库案例已关闭评论

现代88星座

1928年国际天文学联合会正式公布国际通用的88个星座方案。
同时规定以1875年的春分点和赤道为基准。
根据88个星座在天球上的不同位置和恒星出没的情况,又划成五大区域,即北天拱极星座(5个)、黄道十二星座(天球上黄道附近的12个星座)、赤道带星座(10个)、南天星座(-30~-90°,42个)、北天星座(40~90°,19个)。

全天的88个星座是:
黄道十二星座(12个):白羊座、金牛座、双子座、巨蟹座、狮子座、室女座、天秤座、天蝎座、人马座、摩羯座、宝瓶座、双鱼座。
赤道带星座(10个):蛇夫座、天鹰座、麒麟座、小马座、小犬座、巨蛇座、六分仪座、长蛇座、猎户座、鲸鱼座。
南天星座(共42个):半人马座、凤凰座、天鹤座、天坛座、绘架座、苍蝇座、山案座、印第安座、天燕座、飞鱼座、矩尺座、剑鱼座、时钟座、杜鹃座、南三角座、圆规座、蝘蜓座、望远镜座、水蛇座、南十字座(小星座)、孔雀座、南极座、网罟座,南冕座、豺狼座、大犬座、天鸽座、乌鸦座、南鱼座、天兔座,船底座、船尾座、罗盘座、船帆座、玉夫座、波江座、盾牌座、天炉座、唧筒座、雕具座、显微镜座、巨爵座。
北天星座(19个):飞马座、天鹅座、蝎虎座、仙女座、鹿豹座、御夫座、猎犬座、狐狸座、小狮座、英仙座、牧夫座、武仙座、后发座、北冕座、天猫座、天琴座、海豚座、三角座(小星座)、天箭座(小星座)。
北天拱极星座(5个):小熊座(最靠近北天极)、大熊座、仙后座、天龙座、仙王座。

参考:
百科

发表在 info | 现代88星座已关闭评论

卫星分类

按类型分

军事卫星 s_js
气象卫星 s_qx
资源卫星 s_zy
通讯卫星 s_tx
导航卫星 s_dh
遥感卫星 s_yg
科学卫星 s_kx
侦察卫星 s_zc
截击卫星 s_jj
光学卫星 s_gx
中继卫星 s_zj
空间站 s_ss

 

按高度分

高轨道/地球同步轨道/静止轨道(GEO):高度约36000km,

优点:
通信距离远,覆盖面积大,3颗便可覆盖全球。
地球站不需要复杂的跟踪系统即可对准。
缺点:
高度高,因此信号衰减和时延大。
地球的两极为通信盲区,而且高纬度地区通信效果较差。
地球静止轨道只有一条,轨道上所能容纳的卫星数量有限。

高椭圆轨道(HEO):远地点约40000km,

优点:
可覆盖高纬度地区
地球站可工作在大仰角上,减小大气影响
可用简单的高增益非跟踪天线
发射成本较低
在业务时间内不会发生掩蔽现象
缺点:
需考虑卫星切换问题
需要多普勒频移补偿功能
卫星天线必须有波束定位控制系统
当近地点过低时,卫星会经过范·艾伦带,需要防辐射措施
全球覆盖一般需星间链路

中轨道(MEO):高度约2000km或3000km~20000km

优点:
传输损耗较小、传播时延也大约为GEO卫星的四分之一
降低了卫星切换的频率,
需要较少的卫星就能实现全球覆盖,降低了系统设计和管理的难度。

低轨道(LEO):高度500 km ~2000km

优点:
可覆盖全球
传播时延短,服务质量好
频率资源可多次再用
抗毁性能好
传播损耗小,卫星和地面终端设备简单,适合个人移动卫星通信。
缺点:
复杂的网络设计,投资浩大
一般需要星上处理和星间通信等技术
较大的多普勒频移,需要频率补偿功能
需考虑卫星切换问题

 

 

发表在 space | 卫星分类已关闭评论

Gitlab 用户五种权限

Gitlab权限管理
Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner

Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
Gitlab中的组和项目有三种访问权限:Private、Internal、Public

Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
开源项目和组设置的是Internal

 

发表在 it | Gitlab 用户五种权限已关闭评论

关闭edge推荐设置默认浏览器的弹窗

访问 edge://flags/#edge-show-feature-recommendations

设置成 Disable

发表在 windows | 关闭edge推荐设置默认浏览器的弹窗已关闭评论

CI/CD

 

名词

  • CI: Continuous Integration(持续集成)
  • CD: Continuous Delivery(连续交付)
  • CD: Continuous Deployment(持续部署)

.

发表在 it | CI/CD已关闭评论

Go install

下载

https://golang.google.cn/dl/

UNIX/Linux/Mac OS X, 和 FreeBSD 安装

1、下载二进制包:go1.4.linux-amd64.tar.gz。

2、将下载的二进制包解压至 /usr/local目录。

tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz

3、将 /usr/local/go/bin 目录添加至 PATH 环境变量:

export PATH=$PATH:/usr/local/go/bin

以上只能暂时添加 PATH,关闭终端下次再登录就没有了。

我们可以编辑 ~/.bash_profile 或者 /etc/profile,并将以下命令添加该文件的末尾,这样就永久生效了:

export PATH=$PATH:/usr/local/go/bin

添加后需要执行:

source ~/.bash_profile

source /etc/profile

MAC 系统下你可以使用 .pkg 结尾的安装包直接双击来完成安装,安装目录在 /usr/local/go/ 下。

Windows 系统下安装

Windows 下使用 .msi 后缀的安装包来安装。

默认情况下 .msi 文件会安装在 c:\Go 目录下。你可以将 c:\Go\bin 目录添加到 Path 环境变量中。添加后需要重启命令窗口才能生效。

安装测试

创建工作目录 C:\>go-workSpace

test.go 文件:

package main

import "fmt"

func main() {
   fmt.Println("Hello, World!")
}

使用 go 命令执行以上代码输出结果如下:

c:\go_workSpace>go run test.go
Hello, World!

.

 

发表在 go | Go install已关闭评论

Apache Log4j2远程代码执行漏洞(CVE-2021-44228)

简介

ApacheLog4j2是一个开源的Java日志框架,被广泛地应用在中间件、开发框架与Web应用中。

漏洞概述

该漏洞是由于Apache Log4j2某些功能存在递归解析功能,未经身份验证的攻击者通过发送特定恶意数据包,可在目标服务器上执行任意代码。

影响范围

Apache Log4j 2.x <= 2.15.0-rc1


漏洞编号: CVE-2021-44228,名称为Log4Shell或者LogJam

漏洞类型: Remote Code Execution (RCE)

组件名称: Apache log4j2

影响范围: 2.0.0 ≤ Apache Log4j2 ≤ 2.15.0-rc1

利用难度: 容易

威胁等级: 严重


解决方案

1.目前,Apache软件基金会已发布最新版本,建议受影响的用户及时更新升级到最新版本log4j-2.15.0-rc2:

https://logging.apache.org/log4j/2.x/security.html

https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

2.对于该漏洞还有一个临时的缓解措施:

设置log4j2.formatMsgNoLookups=true

 

 

.

 

发表在 cve | Apache Log4j2远程代码执行漏洞(CVE-2021-44228)已关闭评论

航天/天文常用坐标系

一、英文缩写说明
CIO:国际协议原点(考虑极移与章动)
CRF:协议天球参考框架
CTS:协议地球坐标系
ECEF:地心地固坐标系
ECI:地心惯性坐标系 (Earth Center Inertial Coordinates | 地球中心的惯性坐标系)
ECSF:地心空间坐标系
ECEI:地心椭球惯性坐标系(地心黄道惯性坐标系)
ECF: 地心固定坐标系
TEME:
真赤道平春分点坐标系(True Equator Mean Equinox)(适用TLE的坐标系)
MEME:历元平赤道平春分点地心坐标系(Mean Equator Mean Equinox)(卫星常用)
J2000地心赤道坐标系(卫星常用/MEME坐标系)
GCRS:地心天球参考系
ITRS:国际地球参考系
WGS84:WGS-84坐标系(World Geodetic System一1984 Coordinate System)

二、坐标系解析
1. 笛卡尔坐标系
01—笛卡尔坐标系有两种:
右手系和左手系;其中,
右手系分为:CTS(包括ECEF, 其中ECEF可以是直角系或椭球系或大地坐标系)、

CRF(包括ECI、ECSF和ECEI)和星固坐标系;
左手系有:当地坐标系(站星坐标系)!


2. ECEF 地心地固坐标系
02—ECEF:
1)原点-地球几何中心(地球质心);
2)Z轴-地球平均自转极点(CIO);
3)X轴-子午线与赤道交点;
4)Y轴-右手系决
定!


3. ECI 地心惯性坐标系
03—ECI:
1)原点-地球质心;
2)Z轴-地球平均自转极点(CIO);
3)X轴-春分点(每年春分点均会发生变动,参考J2000.0);
4)Y
轴-右手系决定!

地心惯性坐标系(ECI×J2000历元坐标系)
地心惯性坐标系是太阳系内的一个惯性坐标系,不随地球而转动,也不受地球、DAC6574IDGS太阳运行的章动和岁差的影响。其坐标原点位于地心0e;OeX轴位于赤道平面内,指向特定某一年(历元时刻)的太阳春分点位置;Oez轴指向某一年(历元时刻)地球北极的平均位置处;Ocy轴位于赤道平面内,与0eX轴垂直,且与0cX、9ez构成满足右手定则的笛卡儿直角坐标系。由于采用的历元时间不同,可以有各种不同的地心惯性坐标系,目前国际上通用的地心惯性坐标系是12.000历元坐标系,它是以公元20.OO年的春分点为基准的历元坐标系。

在空间保持静止或匀速直线运动(无加速度)的坐标系称为惯性坐标系。所有惯性器件在测量轴方向产生的都是惯性系下的测量结果。此外,还需要在惯性系下完成卫星绕地球的位置和速度的估计。对于近地卫星,通常采用地心惯性(ECI)坐标系。


4. ECSF 地心空间坐标系
04—ECSF==ECI!


5. ECEI 地心椭球惯性坐标系(地心黄道惯性坐标系)
05—ECEI:1)原点-地球几何中心(地球质心);2)Z轴-椭球极轴(黄道极-地球公转 轨迹在地球表面投影轨迹形成);3)X轴-春分点
(每年春分点均会发生变动,参考J2000.0);4)Y轴-右手系决定!


6. ECF 地心固定坐标系
地心固定坐标系(ECF)(WGS84坐标系)
地心固定坐标系的坐标原点位于地心0c,Oez轴指向地球北极,Oe凭轴位于赤道平面内指向地理经度的零点,Oey轴根据右手定则确定。地心固
定坐标系为笛卡尔直角坐标系,该坐标系在宇宙空间中相对地球静止,伴随地球自转和公转。


7.星固坐标系
06—星固坐标系:1)原点-卫星质心;2)Z轴-指向地心或者与天线指向平行方向;3) Y轴-平行太阳能面板(若面板不对称,Y轴指向何
方?);4)X轴-右手系决定!


8. 当地坐标系
07—当地坐标系:1)Z轴-垂直水平面向上;2)X轴-指向大地北;3)Y轴-指东;4)X- Y面构成水平面!


9. 坐标系转换
08—若原点相同的系可以归属为同一类笛卡尔坐标系!
09—不同的笛卡尔坐标系转换公式:X(new)=X(原点坐标差)+U * R * X(old)!
10—X(ECEF) = R(M) * R(S) * R(N) * R§ * X(ECI)
11—X(ECEI) = R1(-ems) * X(ECI)
12—IAU 2000框架下:X(ECEF0 = R(M) * R(S) * R(NP) * X(ECI)
13—不同的坐标可以通过R1、R2、R3矩阵进行转换!


astropy根据TLE计算的卫星位置用TEME坐标(表中的第四种)表示,做卫星的覆盖分析,需要经纬度则需要转换坐标。

转换包:

https://www.osgeo.cn/astropy/index.html

一、参心坐标系

reference-ellipsoid-centric coordinate system

是以 参考椭球的几何中心为原点的 大地坐标系。“参心”意指参考椭球的中心。

通常分为:参心空间直角坐标系(以x,y,z为其坐标元素)和参心大地坐标系(以B,L,H为其坐标元素)。参心坐标系是在参考椭球内建立的O-XYZ坐标系。原点O为参考椭球的几何中心,X轴与赤道面和首子午面的交线重合,向东为正。Z轴与旋转椭球的短轴重合,向北为正。Y轴与XZ平面垂直构成右手系。在测量中,为了处理观测成果和传算地面控制网的坐标,通常须选取一参考椭球面作为基本参考面,选一参考点作为大地测量的起算点(大地原点),利用大地原点的天文观测量来确定参考椭球在地球内部的位置和方向。

参心大地坐标的应用十分广泛,它是经典大地测量的一种通用坐标系。根据地图投影理论,参心大地坐标系可以通过高斯投影计算转化为平面直角坐标系,为地形测量和工程测量提供控制基础。由于不同时期采用的地球椭球不同或其定。

北京54和西安80均为参心坐标系。

二、地心坐标系

geocentric coordinate system

以地球质心为原点建立的空间直角坐标系,或以球心与地球质心重合的地球椭球面为基准面所建立的大地坐标系。
以地球质心(总椭球的几何中心)为原点的大地坐标系。通常分为:

地心空间直角坐标系(以x,y,z为其坐标元素)

和地心大地坐标系(以B,L,H为其坐标元素)(L(经),B(维),H(高)表示)。

地心坐标系是在大地体内建立的O-XYZ坐标系。

原点O设在大地体的质量中心,用相互垂直的X,Y,Z三个轴来表示,X轴与首子午面与 赤道面的交线重合,向东为正。

Z轴与地球 旋转轴重合,向北为正。Y轴与XZ平面垂直构成 右手系。

产生的背景

20世纪50年代之前,一个国家或一个地区都是在使所选择的参考椭球与其所在地区的大地水准面最佳拟合的条件下,按弧度测量方法来建立各自的局部大地坐标系的。由于当时除海洋上只有稀疏的重力测量外,大地测量工作只能在各个大陆上进行,而各大陆的局部大地坐标系间几乎没有联系。不过在当时的科学发展水平上,局部大地坐标系已能基本满足各国大地测量和制图工作的要求。但是,为了研究地球形状的整体及其外部重力场以及地球动力现象;特别是50年代末,人造地球卫星和远程弹道武器出现后,为了描述它们在空间的位置和运动,以及表示其地面发射站和跟踪站的位置,都必须采用地心坐标系。因此,建立全球地心坐标系(也称为世界坐标系)已成为大地测量所面临的迫切任务。

WGS-84、CGCS2000,都是属于地心坐标系。

三、地心坐标系


 

四:常见常量

ref:

https://www.osgeo.cn/astropy/constants/index.html

名字 价值 单位 描述
G 6.6743e-11号 m3/(kg s2) 引力常数
N_A 6.02214076e+23 1/(摩尔) 阿伏加德罗数
R 8.31446262 J/(千摩尔) 气体常数
黑麦 10973731.6 1/(米) 里德堡常数
a0 5.29177211e-11 玻尔半径
阿尔法 0.00729735257 精细结构常数
自动取款机 101325 宾夕法尼亚州 标准大气
b_wien 0.00289777196 m千 维恩波长位移定律常数
C 299792458 米/(秒) 真空中的光速
E 1.60217663e-19 C 电子电荷
eps0 8.85418781e-12号 F/m公司 真空介电常数
g0号 9.80665 米/秒2 标准重力加速度
H 6.62607015e-34 J s 普朗克常数
糖化血红蛋白 1.05457182e-34 J s 约化普朗克常数
k_B 1.380649e-23 J/(K) 玻尔兹曼常数
m_e 9.1093837e-31 公斤 电子质量
m_n 1.6749275e-27 公斤 中子质量
m_p 1.67262192e-27 公斤 质子质量
mu0单位 1.25663706e-06 N/A2 真空磁导率
muB公司 9.27401008e-24 J/T公司 玻尔磁子
sigma_T 6.65245873e-29 平方米 汤姆逊散射截面
sigma_sb 电话:4208-745 W/(K4平方米) 斯特凡玻尔兹曼常数
U 1.66053907e-27 公斤 原子质量
GM_earth 3.986004e+14 m3/(s2) 标称地球质量参数
GM_jup 1.2668653e+17 m3/(s2) 名义木星质量参数
GM_sun 1.3271244e+20 m3/(s2) 标称太阳质量参数
L_bol0 3.0128e+28 W 绝对辐射量0的光度
L_sun 3.828e+26 W 标称太阳光度
M_earth 5.97216787e+24 公斤 地球质量
M_jup 1.8981246e+27 公斤 木星质量
M_sun 1.98840987e+30 公斤 太阳质量
R_earth 6378100 标称地球赤道半径
R_jup 71492000 木星名义赤道半径
R_sun 695700000 标称太阳半径
澳大利亚 1.49597871e+11 天文单位
科索沃保护团 3.08567758e+19 千帕
个人电脑 3.08567758e+16 帕塞克

参考图:

 

注:资料来源于网络

参考:
http://www.rivermap.cn/docs/show-1829.html

.

 

发表在 space | 航天/天文常用坐标系已关闭评论

mybatis 多数据源

 

1.定义多个数据源的mybatis配置

application.properties 

mybatis.mapper-locations=mappers/*.xml
mybatisLog.mapper-locations=mappersLog/*.xml

## datasource master #
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=
jdbc:mysql://localhost:3306/test1?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=466

## datasource log #
spring.datasourceLog.type=com.alibaba.druid.pool.DruidDataSource
spring.datasourceLog.driver-class-name=com.mysql.jdbc.Driver
spring.datasourceLog.url=
jdbc:mysql://localhost:3306/log?characterEncoding=UTF-8
spring.datasourceLog.username=root
spring.datasourceLog.password=466

 

 

2.定义多个数据源

@Configuration
public class DatasourceConfig {

    @Bean(destroyMethod =  "close", name = DataSources.MASTER_DB)
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        return DataSourceBuilder.create()
        .type(DruidDataSource.class)
        .build();
    }

    @Bean(destroyMethod =  "close", name = DataSources.LOG_DB)
    @ConfigurationProperties(prefix = "spring.datasourceLog")
    public DataSource dataSourceLog() {
        return DataSourceBuilder.create()
        .type(DruidDataSource.class)
        .build();
    }
}

 

3.分别配置多个数据源

@Configuration
@MapperScan(basePackages = {"com.example.mapper.orders"})
public class MybatisConfig {

    @Autowired
    @Qualifier(DataSources.MASTER_DB)
    private DataSource masterDB;

    @Bean
    @Primary
    @ConfigurationProperties(prefix = "db.order")
    public SqlSessionFactoryBean sqlSessionFactoryBean() {
        SqlSessionFactoryBean sqlSessionFactoryBean;
        sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(masterDB);
        return sqlSessionFactoryBean;
    }
}

.

@Configuration
@MapperScan(basePackages = {"com.example.mapper.users"}
, sqlSessionFactoryRef = "logSqlSessionFactory")
public class MybatisLogConfig {

    @Autowired
    @Qualifier("user")
    private DataSource userSource;

    @Bean(name = "logSqlSessionFactory")
    @ConfigurationProperties(prefix = "db.user")
    public SqlSessionFactoryBean sqlSessionFactoryBean() {
        SqlSessionFactoryBean sqlSessionFactoryBean;
        sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(userSource);
        return sqlSessionFactoryBean;
    }
}

 

关键

  • 1)Configuration 扫描不同的前缀,取不同包下的sql对应的xml文件
  • 2)SqlSessionFactoryBean 实例化时,默认的额外添加了 @Primary注解
  • 3)MapperScan 扫描的不同的包,如果扫描相同的包也能做,但是还需要做额外的配置,可以自己尝试
  • 4)不同的数据源使用不同的SqlSessionFactoryBean实例

 

 

.

发表在 java | mybatis 多数据源已关闭评论