spring是一个很普通、很实用的框架,它封装了大量的常用代码。本质就是通过配置xml文件或注解来驱动java代码。
spring是一个独立的框架,既可以用在java SE项目中,也可以用在 Web项目中。
当使用spring框架时,必须使用spring容器,即 spring core container,主要由org.springframework.core org.springframework.beans org.springframework.context org.springframework.expression四个包及子包组成。
程序先创建bean容器,再调用bean容器的getBean()方法来获取Spring容器中的bean。
获得
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
,会得到多个依赖的jar,见下图。
bean
这里的bean类似于JavaBean,但范围要宽的很多。spring就像一个大容器,帮我们创建好对象后放入了它的容器。所有由它创建的对象,都叫bean。
bean的作用域
singleton
每次调用getBean(),都返回同一个对象;
prototype
每次调用getBean(),都返回新的对象;
request 针对每次HTTP请求,Web应用中才有效。
依赖注入
两种注入
设值注入:通过<property .../>元素驱动spring执行setter方法。
构造注入:通过<constructor-arg.../> 元素驱动Spring执行带参数的构造函数。
通常不建议使用配置文件管理bean的基本类型的属性值,只配置容器中bean与bean之间的关系。
@注解
可以使用注解来代替xml配置。
@ org.springframework.stereotype.Component
一个类若标注了@Component,表明此类被作为Spring的Bean类。对象名默认为类名首字母小写。
标注之后还需要在spring配置文件中指定搜索路径。一个beans.xml及bean及app代码示例见下。注意版本号要与jar对应。