Spring 是 Java EE 编程领域的一款轻量级的开源框架,它能够简化 Java 企业级应用程序的开发难度和周期。很受企业的欢迎,那spring注入对象什么时候创建?下面来我们就来给大家讲解一下。
创建对象的方式:
1、采用默认的构造函数创建;
2、采用静态工厂方法;
写一个静态工厂方法类
public class HelloWorldFactory { public static HelloWorld getInstance() { return new HelloWorld(); } }
在spring的配置文件中进行声明
<bean id="helloWorld2" class="com.itheima05.spring.bean.HelloWorldFactory" p="" <="">
factory-method="getInstance">
告诉spring容器利用HelloWorldFactory类中的getInsatance静态方法产生对象
但是具体的对象的创建的过程是由程序员来完成的
实例工厂方法
写一个实例工厂类
public class HelloWorldFactory { public HelloWorld getInstance() { return new HelloWorld(); } }
在spring的配置文件中
spring容器为HelloWorldFactory2创建对象;
告诉spring容器,利用helloWorld3对象调用getInstance方法;
创建对象的时机:
1、在默认的情况下,在spring容器启动的时候创建对象
在spring配置文件中,只要根据以上的三种方式的其中一种配置了,spring容器就会创建对象;
好处:spring容器和web容器整合的时候,当web容器启动的时候就可以初始化spring容器了,如果这个时候spring容器内部有错误,则直接会报错;
如果该bean中存放着大量的数据,而且数据的初始化发生在创建对象的时候,这个时候,数据会过早的驻留在内存中;
2、如果在spring的配置文件中一个bean的配置中有lazy-init="true",那么该bean在调用getBean方法时创建对象;
不好处:不能过早的发现错误;
好处:按照需求加载数据(什么时候要什么时候加载);
spring第一个程序怎么创建?
1. 创建 Java 项目
在 Eclipse 中创建一个简单的 Java 项目,依次单击 File -> New -> Java Project,这里将项目名称设置为 HelloSpring。
2. 添加 jar 包
这里我们需要在项目中添加 Spring 和 logging 的 jar 包,操作步骤如下。
鼠标右键点击 HelloSpring 项目,然后在弹出的菜单中选择 Build Path -> Add external archives,选择 Spring 的 jar 包。
这里我们可以先把 Spring 基础 Jar 包以及 Commons-loggin 导入到项目中,若后续功能增加,则根据需要再导入 Spring 的其他 Jar。
org.springframework.core-5.3.13.jar
org.springframework.beans-5.3.13.jar
spring-context-5.3.13.jar
spring-expression-5.3.13.jar
commons.logging-1.2.jar
当然,我们也可以直接将所有的 Spring Jar 包都一次性导入到项目中。
3. 创建 Java 类
在 HelloSpring 中创建 net.biancheng.c 包,然后在这个包下创建 HelloWorld.java 和 MainApp.java 类。
package net.biancheng.c; public class HelloWorld { private String message; public void setMessage(String message) { this.message = message; } public void getMessage() { System.out.println("message : " + message); } }
2. MainApp.java 类的代码如下。
package net.biancheng.c; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml"); HelloWorld obj = context.getBean("helloWorld", HelloWorld.class); obj.getMessage(); } }
关于以上代码,需要注意以下两点:
创建 ApplicationContext 对象时使用了 ClassPathXmlApplicationContext 类,这个类用于加载 Spring 配置文件、创建和初始化所有对象(Bean)。
ApplicationContext.getBean() 方法用来获取 Bean,该方法返回值类型为 Object,通过强制类型转换为 HelloWorld 的实例对象,调用其中的 getMessage() 方法。
4. 创建配置文件
在 src 目录下,创建一个 Spring 配置文件 Beans.xml,内容如下。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="helloWorld" class="net.biancheng.c.HelloWorld"> <property name="message" value="Hello World!" /> </bean> </beans>
我们也可以将该配置文件命名为其它有效的名称,但需要注意的是,该文件名必须与 MainApp.java 中读取的配置文件名称一致。
Beans.xml 用于给不同的 Bean 分配唯一的 ID,并给相应的 Bean 属性赋值。例如,在以上代码中,我们可以在不影响其它类的情况下,给 message 变量赋值。
5. 运行程序
运行 MainApp.java,Eclipse IDE 控制台中显示信息如下。
message : Hello World!
这样我们就成功创建了第一个 Spring 应用程序,其实每一个程序的创建都不难,都是流程性的东西,只要我们会创建项目,会运行起来就可以了!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。
推荐阅读: