- 【Kubernets】Kubernetes 的基础知识,Pod是什么? 和容器的关系?多个容器如何在同一个 Pod 里协作?
{⌐■_■}
Kuberneteskubernetes容器云原生
1.Kubernetes的核心概念(1)Node(节点)定义:Node是Kubernetes集群中的工作机器,可以是物理机或虚拟机。类型:MasterNode:运行控制平面组件(如APIServer、Scheduler)。WorkerNode:运行应用负载(如Pod)。关键组件:Kubelet:负责与MasterNode通信,管理Pod和容器。KubeProxy:负责网络代理和负载均衡。容器运行时
- Spring 多实例注入
m0_74825172
面试学习路线阿里巴巴springjava后端
文章目录1.Spring多实例注入的应用场景2.Spring多实例注入的使用2.1通过ApplicationContext获取多实例2.2配置@Scope的proxyMode属性获取多实例1.Spring多实例注入的应用场景Spring容器中保存的bean默认是单例的,通常来说这样做可以降低bean对象创建的频率,在某些访问量大的场景下可以节省对象创建消耗的时间,提高响应性能。但在一些其他场景,比
- mitmproxy配合Wireshark 抓包分析
自由鬼
安全IT应用探讨运维技术wireshark测试工具网络网络安全运维服务器
Mitmproxy是一款非常强大的交互式HTTP代理工具,它被广泛应用于Web开发、API调试、安全测试等领域。与Wireshark侧重于被动监听网络流量不同,Mitmproxy更像一个主动的中间人,可以拦截、检查、修改和重放HTTP/HTTPS流量,让你能够更深入地理解和控制你的网络通信。一、什么是mitmproxy?Mitmproxy是一个自由且开源的交互式TLS拦截代理。“中间人(Man-i
- curl不通 k8s_【K8S排错】在集群的POD内不能访问clusterIP和service
weixin_39950057
curl不通k8s
排错背景:在一次生产环境的部署过程中,配置文件中配置的访问地址为集群的Service,配置好后发现服务不能正常访问,遂启动了一个busybox进行测试,测试发现在busybox中,能通过coredns正常的解析到IP,然后去ping了一下service,发现不能ping通,pingclusterIP也不能ping通。排错经历:首先排查了kube-proxy是否正常,发现启动都是正常的,然后也重启了
- 从自己电脑的浏览器访问阿里云主机中运行的LLaMA-Factory webui
shada
大模型阿里云云计算
阿里云主机上LLaMA-Factory的webui在0.0.0.0:7860侦听,无法直接打开,需要通过代理的方法访问。在LLaMA-Factory目录下创建一个脚本文件run.sh,并加上执行权限,内容如下:#!/bin/shexportGRADIO_SERVER_PORT=7860exportGRADIO_ROOT_PATH=/${JUPYTER_NAME}/proxy/7860/export
- Training-Free Transformer Architecture Search WithZero-Cost Proxy Guided Evolution(预览版本)
境心镜
transformer深度学习人工智能
摘要Transformers已表现出卓越的性能,然而,其架构设计是一个耗时的过程,需要专业知识和反复试验。因此,研究通过Transformer架构搜索(TAS)自动搜索高性能Transformers的有效方法是值得的。为了提高搜索效率,基于无训练代理的方法已在神经架构搜索(NAS)中得到广泛采用。然而,这些代理被发现不足以很好地推广到Transformer搜索空间,这一点已被多项研究和我们自己的实
- Anonymous GitHub 项目使用教程
袁菲李
AnonymousGitHub项目使用教程anonymous_githubAnonymousGithubisaproxyservertosupportanonymousbrowsingofGithubrepositoriesforopen-sciencecodeanddata.项目地址:https://gitcode.com/gh_mirrors/an/anonymous_github1.项目的目
- webpack-dev-server,proxy代理
码农罢了
webpack前端node.js
如果使用了webpack-dev-server,大概率是要配置代理的devServer:{open:true,proxy:{//配置跨域'/api':{target:'https://aip.baidubce.com',//ws:true,//secure:true,changOrigin:true,//允许跨域pathRewrite:{'^/api':''//请求的时候使用这个api就可以}}}
- webpack-dev-server解决跨域
大猫会长
webpackwebpack前端node.js
目前解决跨域常用的方法是采用webpack-dev-server结合proxy接口代理或者使用Nginx均可配置跨域的代理。由于在本地配置好webpack-dev-server之后,所有项目成员都可以使用,一劳永逸。我们采用了配置webpack-dev-server中proxy的接口代理,在webpack.config.js文件中对webpack-dev-server配置如下:proxy:[{co
- 华为OD技术面试真题 - 技术面】- 前端八股文真题题库(8)
算法大师
华为od面试前端华为OD机试E卷javascriptjavapython
华为OD面试真题精选专栏:华为OD面试真题精选目录:2024华为OD面试手撕代码真题目录以及八股文真题目录文章目录华为OD面试真题精选1.vue中key的作用?为什么不能用index作为key作用为什么不能用index作为key示例说明2.Vue2和Vue3?defineProperty和Proxy?Vue2的`Object.defineProperty()`Vue3的`Proxy`比较和应用场景
- C++设计模式总结
Dontla
C/C++c++设计模式开发语言
文章目录一、**创建型模式**(简化对象创建)1.**工厂模式**(FactoryPattern)2.**单例模式**(SingletonPattern)3.**建造者模式**(BuilderPattern)二、**结构型模式**(处理对象组合关系)4.**适配器模式**(AdapterPattern)5.**组合模式**(CompositePattern)6.**代理模式**(ProxyPatt
- 安装CUDA12.1和torch2.2.1下的DKG
超级无敌大好人
python
1.创建python虚拟环境setNO_PROXY=*condadeactivatecondaenvremove-nfindkgcondacreate-nfindkgpython=3.11condaactivatefindkgcondainstallpackagingsetuptoolspipuninstallnumpycondainstallnumpy=1.24.3请注意,DKG需要python
- Nginx中$http_host、$host、$proxy_host的区别
m0_74823434
面试学习路线阿里巴巴nginxhttp运维
知识巩固!网上看到这篇文章,这里转载记录一下。简介变量是否显示端口值是否存在host浏览器请求的ip,不显示端口否"Host:value"显示值为a:b的时候,只显示ahttp_host浏览器请求的ip和端口号是“Host:value”,value存在就显示proxy_host被代理服务的ip和端口号默认80不显示其他端口显示"Host:value"显示配置反向代理时,接口请求报404问题应用描述
- Nginx 代理 Redis 实现通过域名连接数据库
逢生博客
数据库nginxredis
文章目录Nginx模块介绍Stream模块配置Redis配置文件连接RedisNginx、Redis安装这里不做介绍。域名默认已经解析到服务器公网IP。Nginx模块介绍HTTP模块:HTTP模块提供了处理HTTP请求的功能,包括反向代理、负载均衡、缓存、HTTP代理等。例如:proxy模块用于反向代理和负载均衡,fastcgi模块用于处理FastCGI请求。Stream模块:Stream模块用于
- nginx代理mysql和redis
Blueeyedboy521
开发组件mysqlredisnginx
目录MysqlredisMysql这里监听另外一台B虚拟机中的192.168.0.44:3306,并通过A虚拟机的3306端口开放出去之后,只要外部连接A虚拟机ip:3306,并使用mysql的用户名、密码,就可以访问内部的#mysql了stream{upstreammysql{server192.168.0.44:3306;}server{listen3306;proxy_connect_tim
- 【AntDB数据库 问答日日新】8.24(5)AntDB分布式架构集群节点不包括下面哪一项
数据库爱好者一枚呀
AntDB数据库运维分布式数据库
17.AntDB分布式架构集群节点不包括下面哪一项?A、GTMCOORDB、CoordinatorC、DatanodeD、Proxy答案:D解析:无难度:普通18.部署AntDB分布式,
- 深入解析 Vue3 核心架构与实战范式:从响应式原理到 Composition API 设计哲学
嘉图明
架构前端框架
引言:框架演进的必然选择在2020年发布的Vue3并非简单的版本迭代,而是对前端工程化痛点的系统性解决方案。本文将深入剖析其架构设计,结合TypeScript类型系统和ChromeDevTools性能分析工具,揭示Vue3如何通过底层重构实现开发体验与运行效率的双重突破。一、响应式系统的量子跃迁:Proxy的颠覆性设计1.1从Object.defineProperty到Proxy的范式转移//Vu
- NPM设置最新的淘宝镜像,NPM设置HTTP代理,NPM设置HTTPS代理
demodashi666
npm前端node.js
2024年最新淘宝的源镜像https://registry.npmmirror.com设置HTTP代理npmconfigsetproxyhttps://registry.npmmirror.com设置HTTPS代理npmconfigsethttps-proxyhttps://registry.npmmirror.com设置淘宝的源镜像npmconfigsetregistryhttps://regi
- HAproxy+keepalived实现高可用
热心市民运维小孙
linux运维运维linux负载均衡
HAproxy+keepalived实现高可用实际环境中,单台负载均衡可能会因为流量太大而down掉,因此通过keepalived来实现容错高可用这个对与学网工的好理解,keepalived本身就是基于vrrp协议(虚拟路由冗余协议)里面的,通过VIP(虚拟IP)来实现容错,还有健康检查机制,主备切换通过优先级来判断。Keepalived高可用服务的故障切换转移是通过VRRP机制来实现的。在Kee
- sysbench手动测试OceanBase v4.2.4集群
king_harry
oceanbasesysbench数据库
环境:1、ocp(sysbench节点)192.192.103.1282、ob集群1-1-1observer192.192.103.125、192.192.103.126、192.192.103.127,primary_zone:randomhaproxy192.192.103.125、192.192.103.126、192.192.103.127一、安装sysbench(128)源码安装:JDK
- 【Linux】FRP:内网穿透
T0uken
linux运维服务器
FRP(FastReverseProxy)是一种高性能的反向代理应用,主要用于穿透内网和实现端口映射。它允许你将局域网中的服务暴露到公网,从而能够在公网中访问这些服务。FRP主要由两部分组成:FRPC客户端:运行在公司内网机器上,接收来自公网的访问请求,并将请求转发给内网服务。FRPS服务端:部署在具有公网IP的机器上,暴露服务的公网入口,接收公网访问请求,通过加密隧道转发到FRPC。服务端(fr
- 基于 .NET 6 使用 YARP (Yet Another Reverse Proxy) 进行负载均衡
.NET跨平台
ASP.NETCoreWebAPI.net负载均衡
下面是基于.NET6使用YARP(YetAnotherReverseProxy)进行负载均衡,实现ASP.NETCoreAPI的水平扩展的示例,包括详细的配置步骤和代码示例。1.创建ASP.NETCoreAPI服务首先,我们需要创建多个实例的ASP.NETCoreAPI服务,它们将由YARP代理进行负载均衡。1.1创建ASP.NETCoreAPI使用以下命令创建一个新的WebAPI项目:dotne
- 武汉前端面试(1)
Nueuis
前端
面一:vue2和vue3的响应式原理比较?vue2通过object.defineProperty对对象的每个属性进行劫持,会遍历对象的每一个属性,使用getter和setter,只能监听部分方法vue3是基于Proxy代理整个对象,不是逐个属性监听,可以监听新增属性和删除属性,使用reactive函数返回通过proxy创建的代理对象,vue3使用proxy的优点:支持新增和删除属性的响应式可以监听
- go mysql 中间件_GitHub - wushilong/go-sharding: Mysql 分库分表中间件
网络安全技术联盟
gomysql中间件
Go-Sharding简介数据库分库分表中间件,尽可能兼容ShardingSphere的golang实现,基于小米Gaea魔改,但是路由算法支持ShardingSphere的inline表达式风格,而不是Mycat/kingshard这类晦涩而又不灵活的配置,移除多租户功能(配置太复杂了,部署多套即可)为什么造这个轮子尝试了ShardingSphereProxy,其有着糟糕的insert性能和CP
- Linux之系统之配置HAProxy负载均衡服务器
江湖有缘
Linux技术学习服务器linux负载均衡
Linux之系统之配置HAProxy负载均衡服务器前言一、HAProxy介绍1.1HAProxy简介1.2主要特点1.3使用场景二、本次实践介绍2.1本次实践简介2.2本次实践环境规划三、部署两台web服务器3.1运行两个Docker容器3.2编辑测试文件3.3访问测试四、安装HAProxy4.1更新系统软件源4.2安装HAProxy4.3验证安装五、配置HAProxy5.2备份默认配置文件5.2
- vue 获取代理地址封装
qhd吴飞
vue.js
以前我们设置vue代理地址的时候是在vue.config.js文件中增加devServe属性,然后在proxy属性里面配置代理地址,目前网上都是配置一个代理地址的方法,但在实际开发中需要配置多个代理地址,我的这个方法只需要在.env.development文件里配置代理地址即可,打包时自动替换地址。下面是方法1.在src目录新建一个config文件夹,里面新建一个index.js文件constob
- python如何教你开发抢票程序
WX:saferland
python课程设计爬虫
使用python实现韩国抢票,自动排队,自动下单,自动锁票,自动支付defblockInit_v2(proxyConfig=None):globalfirsttry:#遍历区域抢购信息,print(“创建订单:”+str(datetime.now()))queues=[{},{}]ipsStr=NoneuserInfolist=redisCenterConn.hgetall(“melon_glob
- 手写RPC框架-V1版本
~Yogi
rpc网络协议网络
配合源代码使用体验更佳Version1.0一、Provider模块1.ProviderExample2.UserServiceImplpom.xml二、Consumer模块1.ConsumerExample3.UserServiceProxy(静态代理)pom.xml三、RPC模块Proxy包1.ServiceProxy2.ServiceProxyFactoryRegistry包LocalRegi
- web服务器之nginx配置详解
凉菜凉凉
前端服务器nginx
缓存机制对于性能优化而言,缓存是一种能够大幅度提升性能的方案,属于代理缓存的一种。代理缓存常用配置proxy_cache_path:代理缓存的路径语法:proxy_cache_pathpath[levels=levels][use_temp_path=on|off]keys_zone=name:size[inactive=time][max_size=size][manager_files=num
- KEEPALIVED高可用
Albert_OS
网络服务器运维
KEEPALIVED简介Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virt
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" {
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持