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属性,分别用来标识输入的值在构造函数中的位置和类型

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信