这次在项目中使用了Spring框架,首先就来总结下Spring中的配置到最基本的使用。
准备工作
-
首先废话不多说,写Spring必须得下载jar包,这里附上一个Spring 3 jar下载地址
-
这里以idea+mac的开发环境为例
a.在idea下创建一个项目
b.在项目下创建一个叫做lib的文件夹并把jar包放到里面
c.把刚刚创建的lib文件夹的jar包添加到环境中(以mac为例)选择file-->Project Structure(或者⌘;)-->Modules-->Dependencies点击如图:
+号
之后选择刚刚的lib文件夹点击apply即成功添加入环境中
-
创建Spring相关的配置文件
a.在src文件夹下创建一个格式如下和xml名字不限(我这里命名为applicationContext.xml),这是Spring主要配置文件。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
</beans>
到此Spring的基本配置就结束了。
-
在src文件夹下创建如下的package:其中包含一个bean包来存放实体类、一个用来测试的test的包
-
在bean包下创建一个FirstBean实体类:
package spring.bean;
public class FirstBean {
public void sayHello(){
System.out.println("FirstBean sayHello");
}
}
之后到上一步创建好的applicationContext.xml中进行配置
- 在applicationContext.xml中增加一个
<bean>
标签,增加代码如下:
<bean id="first" class="spring.bean.FirstBean" scope="prototype" > </bean>
属性:
id:id属性:对象唯一标识。注意:对个id对应的是同一个类对象
name:属性:唯一的标识。注意:多个name对应是是不同的对象
class:要管理的类的全类名
scope:设定bean对象的作用域可选(singleton/prototype)
prototype(原型模式),每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例。
singleton作用域的 Bean,每次请求该Bean都将获得相同的实例。
lazy-init:设定bean元素是否要延迟初始化,可选属性:(true:延迟初始化在getBean方法调用时才生成类对象/ false:非延迟初始化(默认值)在容器加载过程中就进行初始化)
- 进程到以上基本工作就完成了,剩下的就是再test包下编写一个测试类:
public class test {
public static void main(String[] args) {
//加载IOC容器:Spring容器相对于src对路径
Resource resource = new ClassPathResource("applicationContext.xml");
BeanFactory factory = new XmlBeanFactory(resource);
FirstBean first = (FirstBean)factory.getBean("first");
first.sayHello();
}
}
也可以使用如下方法:
public class test {
public static void main(String[] args) {
//加载IOC容器:Spring容器相对于src对路径
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
FirstBean first = (FirstBean)app.getBean("first");
first.sayHello();
}
}
关于ApplicationContext和BeanFactory的区别:
- ApplicationContext是BeanFactory的一个子接口,是相对高级的容器的实现。
- ApplicationContext:非延迟初始化容器,能尽可能早的发现程序的错误。
运行结果如下:
下一篇:Spring依赖注入
网友评论