- Web容器、Servlet容器、Spring容器、SpringMVC容器之间的关系
weixin_30270889
javaweb.xml
以下内容为个人理解,如有误还请留言指出,不胜感激!Web容器web容器(web服务器)主要有:Apache、IIS、Tomcat、Jetty、JBoss、webLogic等,而Tomcat、Jetty、JBoss、webLogic同时也是servlet容器,或者说他们还包含了servlet容器。没有servlet容器,你也可以用web容器直接访问静态页面,比如安装一个apache等,但是如果要显示
- Netty简单入门
程序员小潘
笔者最近在看Netty相关的东西,想把过程中所学到的和感悟记录下来,于是决定单独开一个专栏,专门记录Netty相关的文章。第一篇就从「简单入门」开始吧!!!Netty简介Netty是由JBOSS提供的一个java开源框架,现为Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。提取句子主干,首先,Netty是一个网
- JBOSS漏洞
唐小风7
Java反序列化RCE漏洞CVE-2015-7501漏洞由于JBoss中invoker/JMXInvokerServlet路径对外开放,JBoss的jmx组件支持Java反序列化invoker/JMXInvokerServlet修复:使用Winzip打开jar文件,在org/apache/commons/collections/functors/InvokerTransformer.class删除
- JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
二潘
RedHatJBossApplicationServer是一款基于JavaEE的开源应用服务器。JBossAS4.x及之前版本中,JbossMQ实现过程的JMSoverHTTPInvocationLayer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。参考:https://github.com/joaomatosf/
- Undertow使用详解
有梦想的攻城狮
架构设计undertow应用服务器tomcat
简介Undertow是一个开源的、灵活的、高性能的非阻塞性应用服务器,由JBoss提供。它可以用作嵌入式服务器,也可以用作大型项目的全功能应用服务器。Undertow的设计以提供最高的性能和最大的灵活性为主要目标,支持非阻塞性和阻塞性处理方式,可以处理十万级的并发连接。Undertow的历史可以追溯到2013年,当时RedHat发布了JBossAS7,这是一个基于Java7的轻量级应用服务器。Un
- 像SpringMVC一样在Android上做Web开发
Java黎先生
一部分Android开发者看到这个标题时可能有点疑惑,SpringMVC不是用来做JavaWeb开发的吗?难道被移植到Android上来了?答案是否定的,因为SpringMVC是基于Servlet的,在Android上开发一个支持Servlet的容器(Tomcat、JBoss)可不简单,所以我们是在Android上开发了一套全新的WebServer+WebFramework。AndServer2.
- Druid介绍
ihaveadream丶
androidadb
Druid介绍Druid首先是一个数据库连接池,并且是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBossDataSource。但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQLParser。Druid支持所有JDBC兼容的数据库,包括Oracle、MySQL
- 互联网架构模板:“开发层”和“服务层”技术
woshishui1243
开发层技术开发框架优选成熟的框架,避免盲目追逐新技术!2.Web服务器挑选一个流行的开源服务器(Java的有Tomcat、JBoss、Resin等,PHP/Python的用Nginx,当然最保险的就是用Apache了,什么语言都支持),业务复杂的情况下,可以在开源服务器的基础上,结合自己的业务特点做二次开发。容器服务层技术服务层的主要目标其实就是为了降低系统间相互关联的复杂度。配置中心集中管理各个
- Jetty 的工作原理以及与 Tomcat 的比较
家常凉菜
散文
Jetty应该是目前最活跃也是很有前景的一个Servlet引擎。本文将介绍Jetty基本架构与基本的工作原理:您将了解到Jetty的基本体系结构;Jetty的启动过程;Jetty如何接受和处理用户的请求。你还将了解到AJP的一些细节:Jetty如何基于AJP工作;以及Jetty如何集成到Jboss;最后我们将比较一下两个Servlet引擎:Tomcat和Jetty的优缺点。Jetty的基本架构Je
- Oralce ORA-00018超出最大会话数处理记录
=PNZ=BeijingL
数据存储sql数据库oracle
项目场景:线上系统JBOSS异常报错,信息如下018-07-1810:55:12,851WARN[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]Throwablewhileattemptingtogetanewconnection:nullorg.jboss.resource.JBossResourceExcepti
- 【Java基础】JPA详解(part1)
sylar哇咔咔
数据库JavaHibernatejavajpa数据库
1.JPA简介:Java持久化规范,是从EJB2.x以前的实体Bean(Entitybean)分离出来的,EJB3以后不再有实体bean,而是将实体bean放到JPA中实现。JPA是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择具体实现,JPA的设计者是Hibernate框架的作者,因此Hibernate作为Jboss服务器中JPA的默认实现,Oracle的Weblogic使用E
- SpringBoot之Logback日志配置文件——日志高亮(logback.xml)
秦时明月之君临天下
SpringBootJavaWebspringbootlogbackxml
一、日志框架①日志门面日志门面是个接口,是日志的规范,使用门面不能直接实现日志功能,它需要被实现后才能使用。slf4jjboss-loggingJCL(commons-logging)②日志实现logbacklog4jJUL(javautillogging)log4j2二、日志选择:SLF4J+LogbackSpringBoot的底层框架Spring的默认日志框架使用的是JCL,而SpringBo
- springboot+日志系统日志
指尖‖舞者
springboot后端java
LogResponseBodyAdvicepackagecom.wpmt.framework.aspectj;importjavax.servlet.http.HttpServletRequest;importorg.jboss.logging.MDC;importorg.springframework.context.annotation.Profile;importorg.springfram
- 52 类 110 个常用 Java 组件和框架整理
gantao_
以下排序是按照从技术组件到开发框架到代码工具,也有一些实在不好分类的,就放到最后了。WEB容器Tomcathttps://tomcat.apache.org/Jettyhttps://www.jetty.com/JBosshttps://www.jboss.org/Resinhttps://caucho.com/products/resin数据库H2https://h2database.com/S
- java服务器介绍
我是无穷
Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问。开发JavaWeb应用所采用的服务器主要是与JSP/Servlet兼容的Web服务器,比较常用的有Tomcat、Resin、JBoss、WebSphere和WebLogic等,下面将分别进行介绍。Tomcat服务器目前最为流行的Tomcat服务器是Apache-Jarkarta
- Rule Engine简介
just_arthur
这里主要介绍基于java的开源规则引擎,下面列出从网上收集的一些代表:Drools:Drools规则引擎介绍Drools是Jboss公司旗下一款开源的规则引擎,它完整的实现了Rete算法;提供了强大的EclipsePlugin开发支持;通过使用其中的DSL(DomainSpecificLanguage),可以实现用自然语言方式来描述业务规则,使得业务分析人员也可以看懂业务规则代码。最新版本Droo
- 动力节点老杜servlet课程笔记感悟
知识冷不丁进了脑子
servlet笔记
JavaSE(java语言的基础版,Java提供的最基本的类库)---Java的开发环境搭建---Java的基础语法---Java的面向对象---数组---常用类---异常---集合---多线程---IO流---反射机制---注解AnnotationBS架构通信原理:关于WEB服务器软件:--Tomcat(WEB服务器)--jetty(WEB服务器)--JBOSS(应用服务器)--WebLogic
- 基于netty的Marshalling序列化框架简单实现
胡浩8880
1.导入相关jar包maven项目直接添加依赖即可。org.jboss.marshallingjboss-marshalling-osgi2.0.0.Beta52.创建序列化传输的类//记得要实现Serializable接口publicclassUserInfoimplementsSerializable{privateStringusername;privateStringage;publicS
- keycloak部署
早退的程序员
服务器linux运维
https://downloads.jboss.org/keycloak/11.0.2/keycloak-11.0.2.zip1.上传zip并解压uzipkeycloak-11.0.2.zip2.创建mysql数据库CREATESCHEMA`keycloak`DEFAULTCHARACTERSETutf8;3.安装mysql的jdbc驱动下载mysql的JDBC驱动(mysql-connector
- netty入门介绍及应用实例
懵齐
netty入门介绍netty
Netty介绍及使用1.Netty介绍1.1简介Netty是由JBOSS提供的一个java开源框架,现为Github上的独立项目。Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络IO程序。Netty主要针对在TCP协议下,面向Clients端的高并发应用,或Peer-to-Peer场景下的大量数据持续传输的应用。Netty本质是NIO框架,适用于服务器通讯相关的
- Netty 介绍、使用场景及案例
摘星喵Pro
javanetty线程模型群聊系统webSocket长连接心跳检测
Netty介绍、使用场景及案例1、Netty介绍https://github.com/netty/nettyNetty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可扩展的网络服务器和客户端。它是一个开源项目,最初由JBoss公司开发,现在由社区维护。Netty的设计和实现以处理高并发、低延迟、可靠性和灵活性为目标,因此非常适合构建各种网络应用,包括网络服务器、代理、聊天应用、在线游戏
- Java--web.xml加载过程;文件标签详解
MinggeQingchun
JavaEESpring家族JavaWebweb.xml
一、web.xml加载过程我们在启动Javaweb项目时,首先需要启动一个容器(如Tomcat,JBoss)WEB加载web.xml过程如下:1、在启动Web项目时,容器(如Tomcat,JBoss)会读web.xml配置文件中的两个节点和2、接着容器会创建一个ServletContext(上下文),应用范围内即整个WEB项目都能够使用这个上下文3、接着容器以的name作为键,value作为值,将
- Netty开篇——基础介绍与准备(一)
ProMan_XY
Netty后端java
I/O篇Netty的介绍Netty是由JBOSS提供的一个Java开源框架在Github上Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序。Netty主要针对在TCP协议下面向客户端的高并发应用,或者Peer-to-Peer/P2P场景下的大量数据持续传输的应用。Netty是一个NIO框架,适用于服务器通讯相关场景共四层TCP/IPjava.ioNio
- 基础技术组件-工作流
码海漫步
基础技术组件java设计语言
文章目录一、前言二、概念说明2.1业务2.2流程2.3业务和流程的关系2.4业务流程2.5工作流2.6业务流程与工作流的关系三、工作流的发展3.1发展背景3.2发展过程四、核心理念4.1流程驱动4.2工作流的核心理念五、工作流系统5.1核心功能5.2涉及的标准5.3因何需要5.4工作流系统分类5.5常用的工作流系统(1)Activiti:(2)Camunda:(3)JBossjBPM:(4)IBM
- Apache/Tomcat/JBOSS/Nginx区别
涛涛zy
Linux运维apachetomcatnginx
一、Apache和Tomcat的区别:Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。解析一:Apache支持静态页,Tomcat支持动态的,比如Servlet等,一般使用Apache+Tomcat的话,Apache只是作为一个转发,对JSP的处理是由Tomcat来处理的。Apche可以
- Nginx-高性能Web服务器
一米阳光_Angel
#Nginxnginx前端服务器
前言:平时总听hex说Nginx服务器,也经常找他解决项目上的nginx配置,但自己一直不懂,不懂就学。听他说:nginx最重要是locationurl配置(正则)、反向代理与负载均衡,平时项目用这些比较多。其实服务器上部署了什么服务,就称服务器为XX服务器,如Nginx服务器,Apache服务器,Tomcat服务器、JBoss服务器、Weblogic服务器(Apache、Tomcat、JBoss
- 阿里云国际服务器设置安全防护程序
九河云
阿里云数据库服务器云计算
阿里云云服务器(ECS)提供弹性、安全、高性能、高性价比的虚拟云服务器,满足您的所有需求。立即在这里免费注册!常见Web应用程序请勿对Web服务控制台(如WDCP、TOMCAT、Apache、Nginx、Jekins、PHPMyAdmin、WebLogic和Jboss)使用默认密码或空白密码。必须使用复杂密码(至少10个字符,可以包含大小写字母、数字和特殊符号)。必须关闭空闲主机。否则,这些控制台
- SpringBoot 整合 Redis 来实现缓存技术
陪伴她的梦
1.概述随着互联网技术的发展,对技术要求也越来越高,所以在当期情况下项目的开发中对数据访问的效率也有了很高的要求,所以在项目开发中缓存技术使用的也越来越多,因为它可以极大的提高系统的访问速度,关于缓存的框架也种类繁多,比如Redis、Ehchahe、JBossCache、Voldemort、Cacheonix等等,今天主要介绍的是使用现在非常流行的NoSQL数据库(Redis)来实现我们的缓存需求
- Druid 分析jpa批量插入
豆豆·丁
java数据库hibernate
Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBossDataSource等,秒杀一切。Druid可以很好的监控DB池连接和SQL的执行情况,天生就是针对监控而生的DB连接池。Druid是一个JDBC组件,它包括三部分:DruidDriver代理Driver,能够提供基于Filter
- spring mvc 数据校验开发步骤
may_123mm
ssmspringmvc数据校验
1.导入数据校验的jar包导入的包有:hibernate-validator-4.3.0.Final.jarjboss-logging-3.1.0.CR2.jarvalidation-api-1.0.0.GA.jar其中的版本可根据自己需求而选择2.修改springmvc配置文件,配置校验器3.修改springmvc配置文件,启用校验器4.添加校验规则;在控制器中启用校验器,对客户端传来的数据进行
- 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独立出来,数据持