j********e 发帖数: 16 | 1 spring存在而且很火,不是一般的火。是有他的理由,我不会否认,也视而不见。
1,function aop,这个我是不干的,我宁愿使用接口模式,注入实例,而不是动态注
入方法;
2,pre-do, post-do等,我一般使用模板模式。而且在我开发的很多管理应用软件中,
也很少使用到。
spring里面用的很多模式,我也很喜欢,比如jdbctemplate。我很早也在使用。但
spring这个整体,我不喜欢。
开源的很多东西,大家投其所好,不要期望所有人都统一到一个观点。 |
|
x*****p 发帖数: 1707 | 2 Spring is the revolution in IT industry. The last revolution was 20 years
ago when OOP concepts were introduced in programming. Now it is the turn of
AOP. Spring brings the software development into another high level. |
|
t*******e 发帖数: 684 | 3 我也正想引用logging的例子,goodbug抢先了,呵呵。在service layer用AOP capture
runtime exceptions是非常有效的,3行code就解决问题了。 |
|
S*******e 发帖数: 525 | 4 People like to have the logging example for AOP -- but I found it only does
simple logging. If you want to do detailed logging such as a specific
request/response under varied conditions, it quickly becomes unusable. |
|
N***m 发帖数: 4460 | 5 give an example? I think AOP itself is powerful enough, perhaps it is just
spring has not implemented every side?
does |
|
a***n 发帖数: 584 | 6 这个很难说吧。了解要求,设计,测试用的时间更多。
编码,可长可短。如果用AOP改写的现有的,可能会删掉不少行。但只写unit test,一
天可以写两三千。 |
|
r*****s 发帖数: 985 | 7 我觉得Spring的问题就是选择太多,
你看看搞个AOP你可以用@AspectJ or Schema定义,
可以用applicationContext or programatically,
然后applicationContext还可以这样或者那样,
又想兼容aspectJ又要自己搞一套
我看迟早大家又会说:这玩意儿太复杂,我们换个简单的。 |
|
a***n 发帖数: 584 | 8 Sorry to reply in English.
Regarding tracing and debug, I once had a similar question. But Spring
claims to have 80% code test coverage (if I remember correctly). Also, their
test code and original source code are opened. So, Spring requires the
users to trust them.
Also, AOP is hard to debug in general.
I do agree that Spring sometimes make a simple thing complicated, but also
make a complex problem simple. :-)
Spring's market strategy seems to support all best practices. I am sure if
they have... 阅读全帖 |
|
x*******i 发帖数: 777 | 9 1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你
应该十分了解UML,尤其是class,object,interaction以及statediagrams。
2.你需要学习JAVA语言的基础知识以及它的核心类库 (collections,
serialization
,streams,networking, multithreading,reflection,event,handling,
NIO,
localization,以及其他)。
3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制
等。
你应该有能力反编译一个类文件并且明白一些基本的汇编指令。
4.如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),必需掌握GUI设
计的思想和方法,以及桌面程序的 SWING,AWT, SWT。你还应该对UI部件的
JAVABEAN组
件模式有所了解。JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。
5.你需要学习j... 阅读全帖 |
|
g*****g 发帖数: 34805 | 10 有些东西的基本概念还是要有的,比如Spring的DI,AOP,其他的细节可以现学先用。
很多东西不是说你要精通,但如果不了解的话,项目到眼前的时候你不知道可以拿来用。
举个例子,用XML做configuration,Apache commons就有现成的API,功能强大,使用
简单。但我已经不下10次在不同的项目里看到不同的人自己写类Parse XML了。 |
|
x*******i 发帖数: 777 | 11 1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你
应该十分了解UML,尤其是class,object,interaction以及statediagrams。
2.你需要学习JAVA语言的基础知识以及它的核心类库 (collections,
serialization
,streams,networking, multithreading,reflection,event,handling,
NIO,
localization,以及其他)。
3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制
等。
你应该有能力反编译一个类文件并且明白一些基本的汇编指令。
4.如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),必需掌握GUI设
计的思想和方法,以及桌面程序的 SWING,AWT, SWT。你还应该对UI部件的
JAVABEAN组
件模式有所了解。JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。
5.你需要学习j... 阅读全帖 |
|
g*****g 发帖数: 34805 | 12 有些东西的基本概念还是要有的,比如Spring的DI,AOP,其他的细节可以现学先用。
很多东西不是说你要精通,但如果不了解的话,项目到眼前的时候你不知道可以拿来用。
举个例子,用XML做configuration,Apache commons就有现成的API,功能强大,使用
简单。但我已经不下10次在不同的项目里看到不同的人自己写类Parse XML了。 |
|
r*****l 发帖数: 2859 | 13 Use AOP.
If Spring, use one of the ProxyCreators. Otherwise, you can use AspectJ, or
write your own using Java instrument and/or Dynamic Proxy. |
|
g*****g 发帖数: 34805 | 14 Spring is the most popular Java framework to promote IoC and AOP
concepts. It's a glue framework, and EJB3 borrows a lot from it.
You probably can see Spring in more industry projects than not. |
|
S****h 发帖数: 558 | 15 Hibernate is for ORM, basically, how to deal with persistence/database.
Anything (web or not) can use it.
Spring in general is a framework about IoC and AOP. It can also be used for
any general project. It grew a lot and applied their basic framework to
lots of fields. For example SpringMVC is the one for Web application, (
compared to JavaEE). Spring also has other packages cover lots of other
fields, such as security, message, database, ... |
|
b******g 发帖数: 3883 | 16 J2EE的工作都不招没经验的吧,而且这些框架出的太多太快了,光和J2EE相关的名词就
多不胜数。我本来对java挺有兴趣,也考过了scjp和SCWCD,后来学hibernate实在学部
下去了什麽one to many, many to many relationship 还有spring AOP..
就struts简单些,后来年纪也大了,就感觉老了用这个吃饭很不容易 |
|
n*********n 发帖数: 580 | 17 You will need to declare the AspectJ aspect as a spring bean with the
factory-method="aspectOf", so that its properties can be injected by spring. |
|
z***s 发帖数: 3241 | 18 spring应该先从ioc,aop入手吧,mvc好像只是选项? |
|
z***s 发帖数: 3241 | 19 spring应该先从ioc,aop入手吧,mvc不是必须的 |
|
f*******3 发帖数: 351 | 20 【 以下文字转载自 WashingtonDC 讨论区 】
发信人: Westridge (西岭), 信区: WashingtonDC
标 题: Java开发人员知识点(更新)
发信站: BBS 未名空间站 (Wed Apr 18 00:03:19 2012, 美东)
Java开发人员知识点
1.听说过James Gosling,SUN和Oracle公司。知道网上下载Java的地址,在哪讨论Java
。练习过Java在Windows下的安装和配置。知道Java应用系统中常见的几种license和JCP。了
解bytecode和Java在不同系统下可以轻松移植的原理。
2.懂得基本的Java编程和行命令格式。了解面向对象的编程思路。
几个基本点:Java基本语法和控制结构,命名和代码风格,结构化,对象封装,继承,
抽象,多态,接口,异常处理,堆空间,栈空间,垃圾回收器,static,this,
synchronized,annotations,JUnit,JDBC,JSP/servlet
Java Core APIs: java.lang,java.util,java.io,java.a... 阅读全帖 |
|
t*******e 发帖数: 684 | 21 新的Drools platform非常棒。看看那些use cases就知道这个平台是多么有用的了。
API和hibernate一致,容易上手,难在写rule,因为太自由了,相同目的,能有非常多
是实现办法。还有jbpm的整合也很有新意,可以写出rule-driven flows,是个类似AOP
的手段。配套的Guvnor也是接近完美。另外Drools 5里面Drools Server可以单独运行
了,和IBM, oracle类似的产品一样,不再仅仅是个framework了。 |
|
M***0 发帖数: 1180 | 22 是在AOP的时候吗? IOC好像不行吧,改成private还能inject? |
|
T*********g 发帖数: 496 | 23 没有直接JDBC缓存。一个简单的方法是用AOP拦截所有DAO里操作DB的方法,实现对缓存
数据的先查找,或者后更新。
你可以通过HIBERNATE学习一些一般的对DB操作的知识,比如说怎么通过乐观锁来提高并
发,悲观锁是什么概念,应该怎么使用。如何设计long session等等。你可以看看gavi
n king和christan baur写的Hibernate in action
Hibernate现在衍生出了一些很有意思的小项目,比如Hibernate shard,我觉得要是有
空的话,看看也挺有意思的。
意见仅供参考,本人并非大牛。 |
|
g*****g 发帖数: 34805 | 24 reflection,serialization. These two alone make C++ not
convenient for object communication between different processes.
And not possible for things like IOC, AOP。
On server side, it's risky to use C++ for an application.
A single error can lead to a crash (dangling pointer,
array index out of range etc.). With JVM and these frameworks,
it typically only affects a single user with bug like this. |
|
g*****g 发帖数: 34805 | 25 随便说说,没google。总得感觉是标准的那一套业界不见得盛行,
就如ejb。
不会用ejb,spring + CXF 或者 Jersey都很简单。
常见的还是SSL + password/key authentication。需要的可以
对数据用另外的key加密,但感觉跟ws没关系。
spring security这个很容易,主要机制是AOP。
只会当binary array
MTOM就不懂了。
Jersey就是一个reference implementation。 |
|
z****e 发帖数: 54598 | 26 结果还是通过了
我不知道楼上说的join行不行
但是我看了网络上的答案是suspend
刚聊了聊,发现这是一个core java的职位,并不全是j2ee的职位
对web什么东西都不要求,但是对原理以及模式,decoupling之类的要求比较多
比如要求解释为什么spring能够decoupling,而且恨隐晦地问
说几个构架的问题
其中一个
两个模块,要求尽最大可能decoupling,但是又要互相调用,你怎么办?
我的答案是
第一层就是用设计模式给降低coupling,但是设计模式很难做到真正的降解
因为要自己去写各种构造器,也就是framework
而这些framework又会跟现有实际应用的代码coupling
所以建议第二步就是套上spring给做到彻底的剥离,或者干脆用上ejb
本来还想展开说说ejb的,但是空间不够了
还有一个实例就是,simon是一个构架师,他有一台机器
这台机器从另外一个system接收数据,那么突然有一天
那个system升级了,而数据的格式全部改变了,为此simon很痛苦
问你怎么办?
我的答案是,首先考虑把现有的这个数据转换成原来格式,然后就好了
... 阅读全帖 |
|
g*****g 发帖数: 34805 | 27 Spring and hibernate grab the good parts out of ejb1.x and ejb2.x.
Namely IOC, AOP (declarative transaction, security) and ORM. Ejb, however,
had a poor implementation. Verbose, hard to test, can't run outside
of container. But you need to give some credit to ejb, the idea behind
it leads to the birth of spring.
Spring is meant to be the replacement with assembled services, thus
make it lighted-weighted and run everywhere.
You have pieces that resembles what an ejb container provides,
and you as... 阅读全帖 |
|
p*********t 发帖数: 2690 | 28 spring不就是因為ejb太复杂,来个di,aop? |
|
g*****g 发帖数: 34805 | 29 Although spring is proprietary, it's also open source with apache
license, so discontinued support is not really a concern. Someone
will just fork it.
Spring+Hibernate is more flexible and more powerful, with finer
control and a bigger set of API (e.g. Advanced AOP through aspectJ).
On the other hand, ejb3.1 is definitely more consise, has a lot of
convention over configuration learned from RoR.
I think ejb3.x is mature enough for most projects, so you can't go
wrong with either one. Personally... 阅读全帖 |
|
g*****g 发帖数: 34805 | 30 Spring and hibernate grab the good parts out of ejb1.x and ejb2.x.
Namely IOC, AOP (declarative transaction, security) and ORM. Ejb, however,
had a poor implementation. Verbose, hard to test, can't run outside
of container. But you need to give some credit to ejb, the idea behind
it leads to the birth of spring.
Spring is meant to be the replacement with assembled services, thus
make it lighted-weighted and run everywhere.
You have pieces that resembles what an ejb container provides,
and you as... 阅读全帖 |
|
p*********t 发帖数: 2690 | 31 spring不就是因為ejb太复杂,来个di,aop? |
|
g*****g 发帖数: 34805 | 32 Although spring is proprietary, it's also open source with apache
license, so discontinued support is not really a concern. Someone
will just fork it.
Spring+Hibernate is more flexible and more powerful, with finer
control and a bigger set of API (e.g. Advanced AOP through aspectJ).
On the other hand, ejb3.1 is definitely more consise, has a lot of
convention over configuration learned from RoR.
I think ejb3.x is mature enough for most projects, so you can't go
wrong with either one. Personally... 阅读全帖 |
|
z*******3 发帖数: 13709 | 33 举个例子
比如oo,oo讲究你要把现实中的所有的实体全部包装成对象
这个是没错
但是j2ee并不是完全的oo
或者这么说,它的oo,是建立在某些并不是你想的那种情况基础之上的
比如你这么理解oo,现实中的每一个人
你要写程序建立一个object去映射它
然后这个人应该要有自己的思想吧?
要有行为吧?这没错
那既然如此,那这个对象的行为是不是它的方法啊?
对啊,是啊
但是你这么做j2ee你就等死吧
没有人这么做
因为当你把对象行为封装到对象本身中去的时候
你就在创造一个controller
而controller是要集中管理的
如果打散到各个实体中去的话
是错误的
所以要想理解j2ee,要先理解mvc
j2ee三个层面分别代表着mvc的三个部分
web就是viewer
db就是model
中间就是controller
但是mvc也有自己的问题
最典型的就是当你要建立ai的时候
理论上应该是单独跑一个线程吧?
比如游戏中一个角色,你要封装它,那应该至少单独给它跑一个ai的thread吧?
然后这个thread跟其他的m也就是游戏的model做通信
对吧?
但是这个是错误的,错误的主要原因是... 阅读全帖 |
|
g*****g 发帖数: 34805 | 34 I can't agree with your approach. The relevant characteristics of OOP here
is encapsulation. Encapsulation means the class maintains some states, and
define some behaviors to operate on these states, it doesn't have
intelligence, that's not part of OOP.
J2EE deals with complicate problem. And it typically has layered structure.
Most complicate systems in the world are using a service-oriented
architecture. But that still doesn't deviate from what OO is about. Every
single service maintains state... 阅读全帖 |
|
p*****2 发帖数: 21240 | 35 都用struts
spring主要就是用di aop |
|
|
z*******3 发帖数: 13709 | 37 不爽,会的人太少
所以大多数时候其实用不到
最多常见的情形是用在log的生成上 |
|
|
g**e 发帖数: 6127 | 39 输入输出判定也可以用一点。总体感觉远不如DI用的多 |
|
|
g*****g 发帖数: 34805 | 41 It's a critical part of spring framework. Many annotations are dependent on
it. e.g. @Transaction, @Scheduled
Spring security is also dependent on it. |
|
w****u 发帖数: 3147 | 42 顶……内置的感觉就是transaction很爽 。
自己用advice实现的话,log估计比较常用吧 |
|
n*w 发帖数: 3393 | 43 除了logging, tracing, transaction 有没有人在其他方面用到? |
|
n*w 发帖数: 3393 | 44 除了logging, tracing, transaction 有没有人在其他方面用到? |
|
g*****g 发帖数: 34805 | 45 As I said, Security. Scheduling |
|
|
n*w 发帖数: 3393 | 47 yes i forgot that security authentication is a good case |
|
|
r*****s 发帖数: 985 | 49 computer science的一个重要的思路就是
add (yet) a(nother) layer of indirection,
Java的长处就在于JVM这层indirection,
而Reflection以及AOP存在的原因
就在于发挥这层indirection,
Reflection就可以让code自己去分析发现class/method/parameters etc.
并且invoke methods when necessary. |
|
d*******i 发帖数: 77 | 50 struts 用的不多。 但很明显struts 应该是web filter level 但spring mvc 的 aop
是reflection level 所以没有什么可比性。
在有 spring security 也不难 正好适合你所说的case 而且提供了很多外部的
authentication 和authorization 接口 |
|