Spring Framework(1)-入门与基础操作总结
点击查看Spring系列文章目录一.基础概念1.Spring有哪些组件2.ApplicationContext类和BeanFactory接口3.BeanFactory接口4.XMLBeanFactory类二.简单使用1.导包2、建立一个xml配置文件3、导入约束4、将对象交个spring容器管理5.使用ApplicationContext...
点击查看Spring系列文章
目录
2.ApplicationContext类和BeanFactory接口
5.使用ApplicationContext加载配置文件,获取对象
一.基础概念
Spring是Spring Framework的总称,包含了许多Java开发和测试所需的组件,旨在提高Java开发者的开发效率和简化开发难度和维护难度。
1.Spring有哪些组件
Spring 4.0中有八大常用的组件,它们分别是:
- Spring Core: Spring框架其他模块的核心依赖组件,并且也提供Spring IoC功能
- Spring Aspects:可以与AspectJ提供集成支持(AOP支持)
- Spring AOP:提供了面向切面编程实现
- Spring JDBC:提供了Java与数据库连接的支持
- Spring JMS:提供Java消息相关支持
- Spring ORM:提供了Hibernate、JPA等持久化支持
- Spring Web:提供了Web支持
- Spring Test:提供了Junit和TestNG的支持
2.ApplicationContext接口和BeanFactory接口有什么不同
ApplicationContext接口和Beanfactory的关系相当于一辆完整的汽车与汽车引擎之间的关系:BeanFactory面向的是Spring容器使用,而ApplicationContext面向的是用户使用,它比BeanFactory提供了更加完善的功能:
1. 提供了支持国际化的文本消息
2. 统一的资源文件读取方式
3. 已在监听器中注册的bean的事件
3.BeanFactory接口有什么作用
BeanFactory接口是Spring框架管理Bean的核心容器,是以工厂模式来实现的,用于获取注册和获取Bean。
二.简单使用
1.导包
导入这几个基础的核心包:
2、建立一个xml配置文件
命名为:applicationContext.xml ,里面规定了Spring管理的对象。
3、导入约束
视频链接:https://pan.baidu.com/s/1J9W2wi3y_tSXe_XXnoULzg
4、将对象交个spring容器管理
5.使用ApplicationContext加载配置文件,获取对象
package com.iteason.hello;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.iteason.bean.User;
public class Demo {
@Test
public void fun1(){
//spring的helloworld
//1、创建容器对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//2、向容器拿user对象
User user = (User) ac.getBean("user");
//3、打印user对象
System.out.println(user);
}
}
各种概念与基础操作
AO面向切面编程
EJB:JavaEE早期的服务器端组件模型
IoC:控制反转
DI:依赖注入
1)set方法注入
2)构造方法注入
3)属性注入
spring的IoC容器:
1)BeanFactory(已过时)
2)ApplicationContext:BeanFactory的子接口,不仅提供BeanFactory的所有功能,还对其进行了增强,开发中使用
|-从硬盘的相对路径加载配置文件:
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
|-从相对路径加载配置文件(不使用)
spring配置文件中的bean元素简单配置:
bean元素:使用该元素表示要交给spring管理的对象
|-name属性:给被管理的对象起个名字,获得该对象时可以使用这个名字去获取
|-class属性:被spring管理的完整类名
|-scope属性:1)singleton 默认使用,单例对象,多次请求只创建一个实例
2) prototype 多例对象,多次请求,创建多个对象实例
tip:调用spring创建对象时,使用的是对象的空参构造方法(正常的调用情况)
生命周期属性:
init-method=”init“
destory-method=”destory“
----用于实例化对象后的前处理与后处理
分模块配置:导入其他配置文件,而不用把所有配置都放在一起
<import resource="/其他配置的路径"></import>
spring的依赖注入配置:
1、set方式注入
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<!-- 将对象交给spring管理 -->
<!-- 将对象交给spring管理 -->
<bean name = "user1" class="com.iteason.bean.User" >
<!-- 配置set注入 -->
<property name="name" value="set方法注入"></property>
<property name="age" value="15"></property>
</bean>
</beans>
<bean name = "user1" class="com.iteason.bean.User" >
<!-- 配置set注入 -->
<property name="name" value="set方法注入"></property>
<property name="age" value="15"></property>
</bean>
</beans>
User:
package com.iteason.bean;
public class User {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public User() {
System.out.println("空参创建");
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
Demo:
package com.iteason.reject;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.iteason.bean.User;
public class RejectDemo {
@Test
public void fun1(){
//演示set注入
//创建容器对象
ApplicationContext ac = new ClassPathXmlApplicationContext("com/iteason/reject/applicationContext.xml");
//取出user
User u = (User) ac.getBean("user1");
//输出
System.out.println(u);
}
}
执行结果:
2、构造方式注入
先要为User提供无参和含参构造
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<bean name = "user2" class="com.iteason.bean.User" >
<!-- 构造方法注入 -->
<constructor-arg name="name" value="构造方法注入"></constructor-arg>
<constructor-arg name="age" value="16"></constructor-arg>
</bean>
</beans>
Demo运行结果:
在构造方法注入时,还可选择的属性有index属性,type属性,分别用来标识输入的值在构造函数中的位置和类型
更多推荐
所有评论(0)