spring之helloworld----搭建以及配置

    Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架.


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>

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


猜你喜欢

转载自blog.csdn.net/pbrlovejava/article/details/80374087
今日推荐