Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003
年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式)
轻量级 <https://baike.baidu.com/item/%E8%BD%BB%E9%87%8F%E7%BA%A7/10002835>开源框架.
1、导包:
导入这几个基础的核心包:
2、建立一个xml配置文件,名字任意,一般命名为:applicationContext.xml
3、导入约束
视频链接:https://pan.baidu.com/s/1J9W2wi3y_tSXe_XXnoULzg
4、将对象交个spring容器管理
5、helloworld
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属性,分别用来标识输入的值在构造函数中的位置和类型
热门工具 换一换