文章目录

  • Spring框架
  • 初步搭建Spring框架
  • 导入jar包
  • 实体类
  • 创建spring配置文件(application.xml)
  • 测试类
  • 运行结果
  • 总结


Spring框架

spring框架即:管理项目中的对象以及对象之间的依赖关系。

IOC控制反转,即将创建对象的控制权交给框架,而不是通过程序员在那需要在哪new.

初步搭建Spring框架

之前已经集成了Maven,此处就略过了。

导入jar包

<!-- spring框架 spring-context -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.2.RELEASE</version>
    </dependency>
  • 容器概述

该org.springframework.context.ApplicationContext接口代表Spring IoC容器,并负责实例化,配置和组装Bean。容器通过读取配置元数据来获取有关要实例化,配置和组装哪些对象的指令。配置元数据以XML,Java批注或Java代码表示。它使您能够表达组成应用程序的对象以及这些对象之间的丰富相互依赖关系。

实体类

package com.wenhua.spring.bean;

/**
 * 持久层类
 * @author wenhua
 *
 */
public class User {

	// User类属性
	private Integer id = 1;
	
	/**
	 * 无参构造方法
	 */
	public User() {
		System.out.println("无参构造方法;");
		
	}

	/**
	 * User类中的方法
	 */
	public void save(){
		id++;
		System.out.println(id);
	}
}

创建spring配置文件(application.xml)

  • bean----表示实体类
  • context----控制各个实体类,以及注解功能
<?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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 	
     	该id属性是标识单个bean定义的字符串。
			name即为该实例化对象起别名
		该class属性定义Bean的类型并使用完全限定的类名。
 	 -->
	<bean id="user" name="userBean" class="com.wenhua.spring.bean.User"></bean>
</beans>

测试类

package com.wenhua.spring.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.wenhua.spring.bean.User;

public class UserTest {
	public static void main(String[] args) {
		
		// 测试期间启动加载Spring的写法
		ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
		// 通过ApplicationContext接口中getBean方法获得指定类的实例化对象
		User user = context.getBean(User.class);
		System.out.println(user);
		user.save();
		
		// 此处的user和配置文件中的id一致
		User user1 = (User)context.getBean("user");
		System.out.println(user1);
		user1.save();
		
		// 此处的userBean是User类实例化对象的别名
		User user2 = (User)context.getBean("userBean");
		System.out.println(user2);
		user2.save();
	}
}

运行结果

无参构造方法;
com.wenhua.spring.bean.User@91161c7
2
com.wenhua.spring.bean.User@91161c7
3
com.wenhua.spring.bean.User@91161c7
4

总结

通过初步搭建spring框架,进行测试后我们发现,spring框架默认是单例模式(初学者可以理解为只执行了一次构造方法),也就是只创建了一个实例化对象。

有些初学者会发现这样还没有new方便,而且配置这么多,感觉好麻烦,其实我之前也有这样的感觉,但是用过JavaEE的小伙伴会知道如果项目大的话,会很麻烦,尤其在改需求(改代码时)需要找到指定的类以及实例化对象,所以Sqring框架在这方面的优点是很突出的,好啦,坚持下去会有不一样的效果。冰冻三尺非一日之寒