|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。观点一,Spring是甚么
1,是一个使用程序框架,为使用程序的开辟供应壮大的撑持,比方对事件处置和耐久化的撑持等等。
2,是一个bean容器,办理bean对象的全部性命周期,保护bean的各类存在形态,比方bean对象的实例化、烧毁、bean的单实例和多实例形态等等。
3,是轻量级的框架和容器,与EJB比拟较而言
二,基础观点
1,轻量级容器
1)可以办理使用程序代码,但对原有代码没有侵进性或侵进性很小。比方不必要完成特定的接口(EJB则划定了烦琐的接口)
2)启动疾速(EJB容器启动太慢了)。
3)部署营业对象时,不必要出格的步骤(部署EJB时就贫苦多了)。
4)被办理的使用只需更好大批的代码,就能够移植到别的情况,比方移植到Web容器、自力的客户端使用等等(在EJB模子下完成的使用离开EJB情况则基本不克不及运转)。
2,IOC
1)IOC(InversionOfControl),即把持反转,是指程序之间干系的把持权由使用代码直达到了内部容器。
之前的程序中,像数据源等这些资本的猎取,多数是经由过程程序本人来完成的,比方在一个DAO中大概存在以下代码:
Contextcontext=newInitialContext();
DataSourceds=(DataSource)context.lookup(“java:/MyDs”);
this.dataSource=ds;
在利用IOC后,像下面DataSource的猎取由IOC容器来猎取,并将其注进到响应的对象中。
2)容器将对象注进到别的对象中的体例一般由两种:设值注进和机关子注进
*设值注进,是指经由过程setter和getter办法,将对象注进到别的对象中,比方:
publicclassUserDao{
privateDataSourceds;
publicUserDao(){}
publicvoidsetDataSource(DataSourceds){
this.ds=ds;
}
publicDataSourcegetDataSource(){
returnds;
}
}
*机关子注进,是指经由过程机关函数将对象注进到别的的对象当中,比方:
publicclassUserDao{
privateDataSourceds;
publicUserDao(DataSourceds){
this.ds=ds;
}
}
3,AOP
1)AOP(AspectOrientedProgramming),即面向方面的编程。
AOP是针对营业处置过程当中的切面举行提取,它所面临的是处置过程当中的某个步骤或阶段,以取得逻辑过程当中各部分之间低耦合性的断绝效果。
OOP(面向对象编程)针对营业处置历程的实体及其属性和举动举行笼统封装,以取得加倍明晰高效的逻辑单位分别。
2)以一个用户登录日记纪录的场景为例,请求用户登录体系时在日记中纪录日志的登录工夫(假定登录办法为login)。
OOP的做法:
publicbooeanlogin(){
……
logger.info(username+“logintimeis”+newDate());
……
}
AOP的做法:对用户登录的历程举行拦阻(必要界说拦阻器),即当login办法实行时,主动触发拦阻器,实行拦阻器的办法,比方界说了login办法的拦阻器类
publicclassLoginIntercepterimplementsMethodIntercepter{
publicObjectinvoke(…){
logger.info(…);
}
}
3)切点(PointCut),是AOP中一个主要的观点,它指了然拦阻在甚么情形下将被触发。
<beanid="myPointcutAdvisor"
class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<propertyname="advice">
<reflocal="MyInterceptor"/>
</property>
<propertyname="patterns">
<list>
<value>.*do.*</value>
<value>.*execute.*</value>
</list>
</property>
</bean>
4)处置体例(Advise),也是AOP中一个主要的观点,它指了然拦阻器的拦阻体例。
Interceptionaroundadvice,供应了针对PointCut的预处置、后处置历程撑持
Beforeadvice,仅面向了PointCut的预处置。
Throwsadvice,仅面向PointCut的后处置过程当中的非常处置。
AfterReturningadvice,仅面向PointCut前往后的后处置历程。
Introductionadvice,Spring中较为特别的一种Advice,仅面向Class层面(而不像上述Advice面向办法层面)。经由过程Introductionadvice我们能够完成多线程会见中的类锁定。
5)历程P为切点(PointCuts)中形貌的一个点
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。 |
|