spring总结1

一.Spring的定义:

      spring是一个以IOC(控制反转)和AOP(面向切面编程)为内核的框架。

二.理解IOC:

      在面向对象传统编程方式中,获取对象的方式通常是用new关键字主动创建一个对象。spring中的IOC方式对象的生命周期由spring框架中的IOC容器管理,直接从IOC容器中获取一个对象,控制权从应用程序交给了IOC容器。

三.理解依赖注入

       由IOC容器在运行期间动态第将某种依赖关系注入对象之中。例如:讲对象B注入赋值给对象A的成员变量。

四.IOC与依赖注入的联系

       依赖注入与控制反转(IOC)是对同一件事情的不同角度的描述。                                                                                                     1.依赖注入是从应用程序的角度描述的,即应用程序依赖容器创建并注入应用程序所需的外部资源(即外部对象)。                     2.控制反转是从容器的角度描述的,即容器控制应用程序,由容器反向地向应用程序注入应用程序所需的外部资源(即外部资源)。

五.IOC/DI的实现

     IOC通常有setter注入和构造方法注入两种实现方式                                                                                                                        1.setter注入:                                                                                                                                                                                 (1)编写接口UserDaoService.java

package com.ssm.service;

public interface UserService {
	public void login();
}

  (2)编写接口实现类UserDaoServiceImpl.java

package com.ssm.service.impl;

import com.ssm.dao.UserDao;
import com.ssm.service.UserService;

public class UserServiceImpl implements UserService{
	private UserDao userDao;
	
	public UserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	public void login(){
		this.userDao.login();
		System.out.println("UserService login");
	}
}

(3)编写接口UserDao.java

package com.ssm.dao;

public interface UserDao {
	public void login();
}

(4)编写接口实现类UserDaoImpl.java

package com.ssm.dao.impl;

import com.ssm.dao.UserDao;

public class UserDaoImpl implements UserDao{

	@Override
	public void login() {
		System.out.println("UserDao login");
		
	}

}

(5)编写配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
    
    <bean id="UserDao" class="com.ssm.dao.impl.UserDaoImpl"/>	
    <bean id="UserService" class="com.ssm.service.impl.UserServiceImpl">
		<property name="userDao" ref="UserDao"/>
	</bean>	
</beans>

(6)编写测试类DITest.java

package com.ssm.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.ssm.service.UserService;

public class DITest {
	public static void main(String[] args) {
		ApplicationContext applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml");
		UserService userService=(UserService) applicationContext.getBean("UserService");
		userService.login();
		
	}

  结果为:

 UserDao login
 UserService login

2.构造器注入

(1)编写接口UserDaoService.java

package com.ssm.service;

public interface UserService {
	public void login();
}

  (2)编写接口实现类UserDaoServiceImpl.java(注意观察和上面的这个文件的区别

package com.ssm.service.impl;

import com.ssm.dao.UserDao;
import com.ssm.service.UserService;

public class UserServiceImpl implements UserService{
	private UserDao userDao;

    public UserServiceImpl(UserDao userDao) {
		this.userDao = userDao;
	}
	
	public UserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	public void login(){
		this.userDao.login();
		System.out.println("UserService login");
	}
}

(3)编写接口UserDao.java

package com.ssm.dao;

public interface UserDao {
	public void login();
}

(4)编写接口实现类UserDaoImpl.java

package com.ssm.dao.impl;

import com.ssm.dao.UserDao;

public class UserDaoImpl implements UserDao{

	@Override
	public void login() {
		System.out.println("UserDao login");
		
	}

}

(5)编写配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
    
    <bean id="UserDao" class="com.ssm.dao.impl.UserDaoImpl"/>	
    <bean id="UserService" class="com.ssm.service.impl.UserServiceImpl">
		<constructor-arg index="0" ref="UserDao"/>
	</bean>
</beans>

(6)编写测试类DITest.java

package com.ssm.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.ssm.service.UserService;

public class DITest {
	public static void main(String[] args) {
		ApplicationContext applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml");
		UserService userService=(UserService) applicationContext.getBean("UserService");
		userService.login();
		
	}

  结果为:

 UserDao login
 UserService login
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值