spring-day01

1.能够说出IoC与DI的概念

IoC(Inversion of Control)控制反转,在使用对象时,由主动new创建对象转换为由IoC容器提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。
DI(Dependency Injection)依赖注入,在容器中建立bean与bean之间依赖关系的整个过程,称为依赖注入。

2.能够完成IoC入门案例的制作

(1)导入Spring坐标

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId> 
    <version>5.2.10.RELEASE</version>
</dependency>

(2)定义Spring管理的类(接口)

public interface BookService {   
	public void save();
}
public class BookServiceImpl implements BookService {    
	private BookDao bookDao = new BookDaoImpl();   
 	public void save() {        
 		bookDao.save();   
 	}
}

(3)创建Spring配置文件,配置对应类作为Spring管理的bean

//id指这个bean的名字,在配置文件中是唯一的,class指这个bean的类型
<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">
</bean>

(4)初始化IoC容器(Spring核心容器/Spring容器),通过容器获取bean

public class App {    
public static void main(String[] args) { 
       	//加载配置文件得到上下文对象,也就是容器对象        
       	ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");        		
       	//获取资源        
       	BookService bookService =(BookService)ctx.getBean("bookService");        				
       	bookService.save();    
     }
  }

3.能够基于XML配置文件格式正确定义bean

(1)bean的基础配置

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/><bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">
</bean>

(2)bean的别名配置

<bean id="bookDao" name="dao bookDaoImpl" class="com.itheima.dao.impl.BookDaoImpl"/><bean name="service,bookServiceImpl" class="com.itheima.service.impl.BookServiceImpl"/>

(3)bean的作用范围配置
定义bean的作用范围,可选范围如下
singleton:单例(默认),指多次getBean的对象为同一个
prototype:非单例,指多次getBean的对象是多个

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl" scope="singleton" />
<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl" scope="prototype" />

4.能够使用setter注入方式实现bean属性注入

(1)setter注入—简单类型
在bean中定义引用类型属性并提供可访问的set方法

public class BookDaoImpl implements BookDao {    
	private int connectionNumber;   
	public void setConnectionNumber(int connectionNumber) {//为变量提供set方法,是注入的入口     
	this.connectionNumber = connectionNumber;    
  }
}

配置中使用property标签value属性注入简单类型数据

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"> 
   <property name="connectionNumber" value="10"/>//name为变量名,value是为变量赋的值
</bean>

(2)setter注入—引用类型
在bean中定义引用类型属性并提供可访问的set方法

public class BookServiceImpl implements BookService{    
		private BookDao bookDao;    
		public void setBookDao(BookDao bookDao) {//该set方法提供注入的入口,使用alt+insert自动生成        
		this.bookDao = bookDao;
     }
  }

配置中使用property标签ref属性注入引用类型对象

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl">    
	<property name="bookDao" ref="bookDao"/>//这里的name指的是上述实现类中定义的bookDao,ref指的是该配置文件中id为bookDao的bean
</bean>

5.能够使用自动装配的方式实现bean属性注入

IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配
常用的有两种
(1)按照类型自动装配

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl" autowire="byType"/>
//这里按照类型自动装配,为实现类中定义的bookDao变量进行装配(相当于new了一个对象),spring会自动在配置文件中查找类型为bookDao类型的bean

(2)按照名称自动装配(不推荐使用)

<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"/>
<bean id="bookService" class="com.itheima.service.impl.BookServiceImpl" autowire="byName"/>
//这里按照类型自动装配,spring会查找配置文件中id为bookDao的bean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值