POM:project Objectt Model
举例:银行的POM
groupId:代表银行的id,比如工行、招行等
artifactId:代表项目的id,比如银行有很多项目:贷款、存款等
version:代表当前是工程的哪个版本。
所有的POM文件都继承自父POM文件。mvn help:effective-pom命令执行后,打印的是父pom+当前项目的配置。
可以在文件中显示指定父pom。也可以这样<relativePath>../parent/pom.xml</relativePath>
goals:绑定goals,执行目标。
war:web archive file
mojo:maven ordinary java object, means more than a goal in maven
spring-web-flow:swf
简述下整个过程:
在项目根目录执行mvn jetty:run,由于mvn后面都是mvn可以执行的命令,这些命令包括本项目的函数,也包含插件里的函数,都是之前就注册好的命令,可以通过mvn jetty:help(此时指定groupid),也可以通过mvn help:describe -Dplugin=groupId:artifactId:version,如果是插件,那么在插件包里的META-INF里可以找到上述插件对应的mvn命令,并且在每个命令比如jetty:run下面可以看到对应的包中的类class,此文件中会有些paramter参数,及参数对应的类型(哪个包里的哪个类),目前还没太看明白这些paramter的作用。需要查看这些parameter列表可以通过命令:mvn jetty:help -Ddetail=true -Dgoal=run
RESTful
1.定义:RESTful:Representational State Transfer表现层状态转化。
2.资源,URI : 表现层指的是资源的表现层
3.表现层:其表示方法不是根据index.html这样表示的,而是在headers里面比如accept和content-type.
4.状态转化:访问一个网站就会涉及到状态转化。比如注册信息,那么服务器上的转化就表现为增加了一个用户信息。
http协议是无状态的协议,意味着所有的状态都保存在服务器上。所以客户端需要通过某种手段是服务器端资源状态发生转化。这种转化是建立在表现层之上的,所以称为表现层状态转化。具体手段包括:POST,GET,PUT,DELETE
java transient关键字:
java中如果需要给某些字段加上关键字,我们只需要实现Serilizable接口就好。但是有的时候我们只需要序列部分字段。那么我们只需要在类的不需要序列的字段前加上transient就可以不序列化。
简单对比下rocketMQ和rabbitMQ:rabbit微秒级实时,很少丢数据,对所有语言适用。正式由于rocketMQ的这些优点,所以阿里为了实现完全不丢数据这种高可靠(支付宝等),所使用的rocketMQ是毫秒级实时,完全不丢数据,只对java适用。
spring框架包括:数据库部分(ORM,OXM,JDBC,JMS,TRANSACTION),WEB(WEBSOCKET,servlet, web,portlet),corecontainer(beans,core,context,spel)以及一些AOP(aspect orient programming)及其框架。
###################################################################
http://wiki.jikexueyuan.com/project/spring/ioc-containers.html
###################################################################
举例:银行的POM
groupId:代表银行的id,比如工行、招行等
artifactId:代表项目的id,比如银行有很多项目:贷款、存款等
version:代表当前是工程的哪个版本。
所有的POM文件都继承自父POM文件。mvn help:effective-pom命令执行后,打印的是父pom+当前项目的配置。
可以在文件中显示指定父pom。也可以这样<relativePath>../parent/pom.xml</relativePath>
goals:绑定goals,执行目标。
war:web archive file
mojo:maven ordinary java object, means more than a goal in maven
spring-web-flow:swf
简述下整个过程:
在项目根目录执行mvn jetty:run,由于mvn后面都是mvn可以执行的命令,这些命令包括本项目的函数,也包含插件里的函数,都是之前就注册好的命令,可以通过mvn jetty:help(此时指定groupid),也可以通过mvn help:describe -Dplugin=groupId:artifactId:version,如果是插件,那么在插件包里的META-INF里可以找到上述插件对应的mvn命令,并且在每个命令比如jetty:run下面可以看到对应的包中的类class,此文件中会有些paramter参数,及参数对应的类型(哪个包里的哪个类),目前还没太看明白这些paramter的作用。需要查看这些parameter列表可以通过命令:mvn jetty:help -Ddetail=true -Dgoal=run
RESTful
1.定义:RESTful:Representational State Transfer表现层状态转化。
2.资源,URI : 表现层指的是资源的表现层
3.表现层:其表示方法不是根据index.html这样表示的,而是在headers里面比如accept和content-type.
4.状态转化:访问一个网站就会涉及到状态转化。比如注册信息,那么服务器上的转化就表现为增加了一个用户信息。
http协议是无状态的协议,意味着所有的状态都保存在服务器上。所以客户端需要通过某种手段是服务器端资源状态发生转化。这种转化是建立在表现层之上的,所以称为表现层状态转化。具体手段包括:POST,GET,PUT,DELETE
因此,RESTful架构表现如下:1.每个URI代表一个资源2.客户端和服务器端实现资源状态变化的传递3.客户端通过四个手段实现表现层状态转化。
看到现在还是没有看明白到底入口、main在哪里。
来个spring框架图:
java transient关键字:
java中如果需要给某些字段加上关键字,我们只需要实现Serilizable接口就好。但是有的时候我们只需要序列部分字段。那么我们只需要在类的不需要序列的字段前加上transient就可以不序列化。
简单对比下rocketMQ和rabbitMQ:rabbit微秒级实时,很少丢数据,对所有语言适用。正式由于rocketMQ的这些优点,所以阿里为了实现完全不丢数据这种高可靠(支付宝等),所使用的rocketMQ是毫秒级实时,完全不丢数据,只对java适用。
spring框架包括:数据库部分(ORM,OXM,JDBC,JMS,TRANSACTION),WEB(WEBSOCKET,servlet, web,portlet),corecontainer(beans,core,context,spel)以及一些AOP(aspect orient programming)及其框架。
###################################################################
http://wiki.jikexueyuan.com/project/spring/ioc-containers.html
###################################################################