`

Spring基本概念

阅读更多
1.Spring是分层的java se/ee应用一站式的轻量级开源框架,以Ioc(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面

向切面编程)为内核。
2.JCP(Java Community Process) 是一个开放的国际组织,主要由Java开发者以及被授权者组成,职能是发展和更新。
  JSR是Java Specification Requests的缩写,意思是Java 规范请求。是指向JCP(Java Community Process)提出新增一个标准化技术规范的

正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。
  JDO(Java Data Object )是Java对象持久化的新的规范,也是一个用于存取某种数据仓库中的对象的标准化API。
  JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。
  JCA(J2EE Connector Architecture, 也缩写为,J2C, J2CA),是J2EE平台上连接传统系统的一个技术规范。
  RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络

  技术的协议。
  SOAP:简单对象访问协议
  SAX是一个用于处理XML事件驱动的“推”模型,虽然它不是W3C标准,但它却是一个得到了广泛认可的API。
  JAXP是Java API for XML Processing的英文字头缩写,中文含义是:用于XML文档处理的使用Java语言编写的编程接口。
  LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。
  Lucene是apache软件基金会[4] jakarta项目组的一个子项目,是一个开放源代码[5]的全文检索引擎工具包,即它不是一个完整的全文检索

  引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。
  OSGi(Open Service Gateway Initiative)即开发服务网关,其主要功能是为连接互联网上的商业服务和下一代智能电器定义一个开放的标准
  Java事务API(JTA;Java Transaction API)和它的同胞Java事务服务(JTS;Java Transaction Service),为J2EE平台提供了分布式事务服

  务。
  JOTM(Java Open Transaction Manager)是ObjectWeb的一个开源JTA实现,它本身也是开源应用服务器JOnAS(Java Open Application 

Server)的一部分,为其提供JTA分布式事务的能力。

3.Spring七大模块:
  (1)Spring核心模块:Ioc
  (2)Application Context 模块:JNDI、EJB等
  (3)AOP模块
  (4)Spring DAO模块
  (5)ORM模块
  (6)Spring Web模块
  (7)Spring MVC
4.Maven是被认为比Ant更优秀的工程编译管理工具,Spring分别提供了Ant和Maven两种项目管理方式
5.Spring的依赖库:
  (1)持久层:Hibernate、iBatis、toplink、JDO、JPA、Openjpa、hsqldb、C3P0
  (2)展现层:struts、JSF、Velocity、FreeMaker、Jakarta Taglib、Portlet
  (3)AOP:aopallicance、AspectJ
  (4)远程访问及Web Service:caucho、JOTM、Axis
  (5)动态语言:Groovy、Jruby
  (6)文件IO:jexcelapi、iText、poi、JasperReports
  (7)文法分析:Dom4j、ORO、Antlr
  (8)字节码操作:asm、cglib、Serp
  (9)应用服务器:Tomcat、GlassFish
  (10)企业应用常见功能:JMX、ehcache、Quartz、JAMom、junit、EasyMock、Log4j
  (11)其他未分类:CommonJ、Jakarta Commom、OC4J、qdox
6.开源许可证:GPL、LGPL、BSD、NPL、QNCL、NOKOS等
7.Spring下的子项目:Spring Web Flow、Spring Web Services、Spring Security(Acegi Security)、Spring LDAP、Spring Rich Client、

Spring Extensions Modules、Spring IDE for Eclipse、Spring BeanDoc、Spring OSGi、Spring .NET
8.mysql ENGINE=InnoDB代表该类型的表支持事务
9.mysql 备份数据库:
        mysqldump -uroot -p123456 database_name>d:/backup20070713.sql
        恢复数据库:
        删除原有数据库,建立数据库,把备份数据库导入。
        mysqladmin -uroot -p123456 drop database_name
        mysqladmin -uroot -p123456 create database_name
        mysql -uroot -p123456 database_name<d:/backup20070713.sql
10.领域对象即实体类一般要实现Serializable接口。
11.<c:rul/>标签很好的解决了开发和应用部署目录不一致的问题
12.Spring Ioc比喻:Ioc类似于导演,使得剧本和具体的演员解耦,控制的意思指选择电影角色扮演者的控制权,反转是指这种控制权从剧本

中移除,移交到导演手中。对于软件来说,即某一接口具体实现类的选择控制权从调用类中移除,转交给第三方裁决。
13.反射机制可以在外部访问私有变量、调用私有方法 setAccessible(true)
14.BeanFactory是Spring框架最核心的借口,它提供了高级Ioc的配置机制。——Ioc容器
   ApplicationContext应用上下文建立在BeanFactory基础之上,提供了更多面向应用的功能。——Spring容器
15.Resource类:ByteArrayResource:二进制数组表示的资源
               ClassPathResource:类路径下的资源
               FileSystemResource:文件系统资源
               InputStreamResource:以输入流返回表示的资源;
               ServletContextResource:为访问Web容器上下文的资源而设计的类
               UrlResource:访问任何URL表示的资源
16.ApplicationContext的初始化和BeanFactory有一个重大的区别:BeanFactory在初始化容器时,并未实例化Bean,知道第一次访问某个Bean

时才实例化目标Bean;而ApplicationContext则在初始化应用上下文时就实例化所有单实例的Bean。
17.Spirng在非Web的应用的环境下,只有singleton和prototype两种作用域,在 WebApplicationContext中还为Bean添加了三个新的作用域:

request、session、global session
18.Spring依赖注入的三种方式:属性注入、构造函数注入、接口注入(不常用)
   属性注入时,若注入的类显示定义了一个带参的构造函数,则需要同时提供一个默认构造函数,否则使用属性注入时将抛出异常
19.Spring属性配置时,必须满足“变量的前两个字母要么全部大写,要么全部小写”
20.Spring构造函数注入时,主要用入参类型和位置索引确定对应关系
21.若是应用同一配置文件中定义的bean<ref bean="car"></ref>
   应用父容器中的Bean<ref parnet="car"></ref>
22.内部bean和JAVA代码中的匿名内部类很相似,也没有id,也不能为其他bean引用,默认为prototype类型。
23.注入null值<value><null/></value>
24.注入集合list:<list><value></value>||<ref>< /ref></list>
   注入集合set:<set><value></value>||<ref>< /ref></set>
   注入集合map:<map>
<entry>
                        <key><value></value>||<ref></ref></key>
<value></value>
</entry>
               </map>
25.依赖注入时,若采用简化的方式注入,将无法使用<![CDATA[ ]]>处理特殊字符&、<、>、"、',只能利用转义字符进行转换
26.自动装配bean的应用ref:byName、byType、constructor、autodetect
27.某个bean不希望自己被自动装配到其他的bean中,autowire-candidate="false" 全局非自动装配:在beans设置default-autowire="false"
28.Spring默认singleton即单实例模式,若要在一个singleton类型的bean中prototype一个bean,即使这个bean是prototye型,但由于该bean

注入关联bean的动作仅有一次,因此需要用lookup的方法注入,每次得到的才是新的bean
29.bean之间的继承关系,所引用的bean都是同一个类,abstarct=“true”即可
30.Spring允许用户通过depends-on属性指定bean前置依赖的bean,前置依赖的bean会在本bean实例化之前创建好。
31.Spring推荐bean作用域的配置方式为:scope="<作用域类型>"
32.Spring的ApplicationContext默认在容器启动时,自动实例化所有singleton的bean并缓存与容器中,若是不希望在容器启动时提前实例化

singleton的bean,可以通过lazy-init="true"属性来控制
33.<bean>的autowire属性有如下六个取值,他们的说明如下:
   1、 No:即不启用自动装配。Autowire默认的值。
   2、 byName:通过属性的名字的方式查找JavaBean依赖的对象并为其注入。
   3、 byType:通过属性的类型查找JavaBean依赖的对象并为其注入。
   4、 constructor:通byType一样,也是通过类型查找依赖对象。与byType的区别在于它不是使用Seter方法注入,而是使用构造子注入。
   5、 autodetect:在byType和constructor之间自动的选择注入方式。
   6、 default:由上级标签<beans>的default-autowire属性确定。
34.ctrl+shift+R:根据类名快速搜索出它所在的类包
35.利用PropertyPlaceholderConfigurer类引入外部属性文件进行属性值的注入
36.国际互按自愿文件的命名规范规定资源名称采用以下方式进行命名:<资源名>_<语言代码>_<国家/地区代码>.properties
37.Spring AOP技术主要是利用了JDK动态代理中涉及的java.lang.reflect.Proxy和 java.lang.reflect.InvocationHandler.其中

InvocationHandler是一个接口,可以通过实现该接口定义横切逻辑,并通过反射机制调用目标类的代码,动态将横切逻辑和业务逻辑编织在一

起。
PerformanceMonitor.begin(target.getClass().getName()+"."+method.getName());
        Object obj=method.invoke(target,args);//通过反射方法调用业务类的目标方法
        PerformanceMonitor.end();
38.Spring定义的切面接口主要分为三类:一般切面Advisor、具有切点的切面PointcutAdvisor、引介切面 IntroductionAdvisor
39.Spring在处理@Aspect注解表达式时,需要用到asm关联类库:asm-2.2.2.jar、asm-commons- 2.2.2.jar、ams-util-2.2.2.jar
   asm是轻量级的字节码处理框架,因为java的反射机制无法获取入参名,所以Spring利用asm处理@AspectJ中所描述的方法入参名。
40.切点函数:args()、this()、target()、@args()、@within()、@target()和 @annotation
41.切面类型总结:@AspectJ、<aop:aspect>、Advisor、<aop:advisor>,其中<aop:advisor>是<aop:aspect>和Advisor的混血儿,他的切面表

示方式和<aop:aspect>相爱难沟通,增强定义方式则和Advisor相同。
42.ORM框架:Hibernate、iBatis、JDO、JPA、TopLink
43.数据库事务的四个特性:原子性、一致性、隔离性、持久性
44.传统经验,若果某个对象是非线程安全的,在多线程环境下,对对象的访问必须采用synchronized进行线程同步。但线程同步限制了并发访

问,所以Spring中采用ThreadLocal来解决线程安全问题
45.ThreadLocal可以解释为本地线程变量
46.一般情况下,只有无状态的Bean才可以再多线程环境下共享,在Spring中绝大部门Bean都可以声明为singleton作用域,就是因为Spring对

一些Bean中非线程安全状态采用ThreadLocal进行处理,让他们也成为线程安全的状态,即使他们引用的是同一个线程实例,但依旧可以在多线

程的情况下共享。
47.@Transactional注解可以被应用于接口定义和接口方法、类定义和类的public方法上。要注意的是注解并不能被继承。 @Transactional(可

跟条件)
48.通过JdbcDaoSupport类来使用JdbcTemplate
49.利用自增键值是不安全的,因此Oracle、Firebird都不提供自增键,只提供序列。序列强制要求用户在新增记录前,先获取主键值。
   Oracel:SELECT <SEQUENCE_NAME> nextval from dual
50.Spring JDBC调用存储过程SQL:doInCallableStatement(CallableStatement cs)
分享到:
评论

相关推荐

    spring笔记,基本使用,基本概念

    ### 一、Spring 基本概念 1. **依赖注入**:Spring 的核心特性之一,它允许组件之间的依赖关系在运行时由容器管理,而不是由组件自身硬编码。这样可以提高代码的可测试性和可维护性。 2. **Bean**:在 Spring 中,...

    Spring MVC基本概念

    ### Spring MVC基本概念 在Java Web开发领域,Spring MVC框架是一种非常流行的模型-视图-控制器(Model-View-Controller,MVC)架构实现。它主要用于构建清晰、可维护的Web应用程序。对于初学者而言,了解Spring ...

    Java Spring 的框架简介外文文献加翻译

    "Introducing the Spring Framework" 是一篇关于Spring框架的入门文章,对于初学者来说,它提供了一个了解Spring基本概念和核心功能的良好起点。配合翻译,读者可以更深入地理解Spring框架的工作原理和如何在实际...

    spring 课件下载

    2. **Spring基本概念** 在深入学习之前,我们需要对Spring的基本概念有清晰的理解。这包括Bean工厂和ApplicationContext的概念,以及它们在管理对象生命周期中的作用。此外,我们还会讨论XML配置和基于注解的配置...

    中软国际Spring简介

    **第一天:Spring基本概念——IOC** IOC(Inverse of Control,控制反转)是Spring的核心特性,它改变了传统Java对象的创建方式。在IOC中,对象的生命周期管理和依赖关系不再由对象自身负责,而是交由Spring容器来...

    spring学习资料

    2. **Spring基本概念**:解释IoC和AOP的基本原理,以及它们在实际开发中的应用。 3. **实战教程**:通过实际项目示例,演示如何使用Spring进行控制器、服务、DAO层的开发,以及事务管理。 4. **Spring Boot快速...

    spring教程

    - Spring基本概念和环境搭建 - Bean的配置和生命周期管理 - AOP原理与实践 - Spring MVC的使用 - 数据源配置和事务管理 - 整合其他框架如Hibernate、MyBatis - Spring Boot与微服务 - Spring Security和Spring Cloud...

    spring学习笔记LBY.pdf

    #### 二、Spring基本概念 1. **Spring框架定义**: - **轻量级**:Spring框架本身非常轻量,开发者可以根据实际项目需求灵活选择使用框架中的某些功能模块。 - **非侵入式**:在使用Spring框架进行开发时,开发者...

    Spring+Struts+HibernateAPI

    3. `spring2.0-reference_final_zh_cn.chm`:这是Spring 2.0的中文参考文档,尽管版本较旧,但仍能提供Spring基本概念和机制的介绍。 4. `Hibernate_3.2.0_Reference_zh_CN.chm`:这是Hibernate 3.2.0的中文参考手册...

    spring 基本包 jar

    下面我们将深入探讨Spring的基本包及其核心概念。 1. **IoC(Inversion of Control)容器**:Spring的核心是IoC容器,它负责管理对象的生命周期和对象之间的依赖关系。通过配置文件或注解,我们可以告诉IoC容器如何...

    Aspectj in Action: Enterprise AOP with Spring Applications (2nd Edition)

    - 已经熟悉OOP、Java和Spring基本概念的开发者。 - 希望深入了解如何将AOP应用于实际项目中的开发者和架构师。 #### 六、业界评价 这本书受到了来自Spring框架创建者Rod Johnson在内的多位专家的高度评价,被赞誉...

    Spring AOP面向方面编程原理:AOP概念

    #### 二、AOP基本概念 AOP是一种编程范式,其目的是提高模块化程度,特别是将那些对很多类都具有影响的公共行为封装起来,以便减少系统的耦合度,并且增加可重用性。Spring AOP是在Spring框架的基础上实现的一种面向...

    Spring的基本配置

    本篇文章将详细探讨Spring的基本配置,帮助你深入理解如何在项目中设置和使用Spring。 一、Spring配置概述 Spring的配置方式主要有两种:XML配置和Java配置。早期,XML配置是主流,而现在,随着Spring Boot的兴起...

    Spring基本知识点教程+案例演示

    ### Spring基本知识点教程+案例演示 #### Spring框架简介 Spring框架是为了解决企业级应用开发的复杂性而诞生的一款轻量级Java平台框架。它最初由Rod Johnson创建,后来发展成为Spring源代码项目,该项目由Pivotal...

    编码剖析Spring装配基本属性的原理

    在Spring框架中,装配是核心概念之一,它允许开发者声明性地配置和组合应用程序组件。本文将深入探讨Spring装配基本属性的原理,帮助你更好地理解如何在代码中使用和配置这些属性。 首先,Spring装配的基本方式有两...

    spring-framework基本包

    9. **Spring Boot**:虽然不在“spring-framework基本包”内,但 Spring Boot 是基于 Spring 框架的快速开发工具,它简化了 Spring 应用的初始搭建以及配置过程,引入了“起步依赖”概念,使得开发者能够快速构建...

    基本的spring mvc + spring security实现的登录(无数据库)

    在本项目中,我们主要探讨的是如何利用Spring MVC和Spring Security框架构建一个基本的无数据库登录系统。Spring MVC是Spring框架的一部分,用于处理Web应用程序的请求-响应模型,而Spring Security则是一个强大的...

    Spring教程 spring tutorial

    这些问题覆盖了Spring框架的基础概念、核心组件、应用场景等方面,帮助读者巩固所学知识并提升实战能力。 ### 结语 Spring框架作为Java企业级开发的首选框架,不仅因为其强大的功能和灵活性,还因为它拥有一个庞大...

    springIoc实现原理

    **一、控制反转(IoC)概念** 控制反转是一种设计思想,主要体现在对象的创建和依赖关系的处理上。在IoC中,不再由对象自己去创建或查找依赖的对象,而是将这种控制权交给一个专门的容器(即Spring Ioc容器)。这样...

    spring MVC 基本应用

    在本文中,我们将深入探讨 Spring MVC 的基本概念和应用。 **1. MVC 架构模式** MVC 是一种设计模式,将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。在 Spring MVC 中: - **...

Global site tag (gtag.js) - Google Analytics