Spring Framwork基础(一)

基本概念

一、IOC和DI

IOC:Inversion of Control–控制反转。

DI:Dependency Injection–依赖注入

其实两个表示同一个意思,只是角度不同罢了。
IOC 和DI 的本质就是将程序间相互依赖交给Spring容器来控制。如传统方式的调用外部对象时需要主动new一个对象出来,使用Spring后,new的工作就交给Spring容器来做,程序可以调用Spring的方法来直接使用外部对象,从而降低程序间的耦合度。

AOP

AOP:Aspect Oriented Programming–面向切面编程
就向早餐吃面包,把面包切成片,向每两片面包中间刷果酱、夹火腿。我们的程序就是面包,刷果酱和夹火腿的动作就是写好的重复性功能。
一句话解释就是写一个可复用的方法,哪里需要插哪里。

二、自动装配bean @Autowired

本节使用Srping Framwork 4

本节以Zoo类中引用Dog类和Pig类为例。

1.配置文件

自动装配bean:在Spring bean配置文件中添加配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd">

	<context:component-scan	base-package="com.nbrabbit.springStudy" />
	
		<!-- <bean id="zoo" class="com.nbrabbit.springStudy.Zoo"></bean> 
	     <bean id="dog" class="com.nbrabbit.springStudy.Dog"></bean> 
		 <bean id="pig" class="com.nbrabbit.springStudy.Pig"></bean>
        -->
</beans>

1.文件头部需要引入xsi中的内容
2.<context:component-scan base-package=“com.nbrabbit.springStudy” /> 表示Spring会自动扫描com.nbrabbit.springStudy包下的文件,遇到Spring注解时会自动将该类注册问bean,而无需在配置文件中写明(代码中的注释是传统的写法,需主动声明bean)。

2.Dog类和Pig类

@Component
public class Dog {

	private String dogName = "dog";

	@Override
	public String toString() {
		return "Dog [dogName=" + dogName + "]";
	}

	public String getDogName() {
		return dogName;
	}

	public void setDogName(String dogName) {
		this.dogName = dogName;
	}
}

3.Zoo类

@Component
public class Zoo {


	@Autowired
	private Pig pig;
	@Autowired
	private Dog dog;
	@Override
	public String toString() {
		return "Zoo [pig=" + pig + ", dog=" + dog + "]";
	}
}

4.main方法

public class App 
{
    public static void main( String[] args )
    {
    	ApplicationContext ctx = new ClassPathXmlApplicationContext("autowired.xml");
    	Zoo zoo = (Zoo)ctx.getBean("zoo");
    	System.out.println(zoo.toString());
    }
}

5.执行main方法

结果:
在这里插入图片描述

6.说明

@Autowired 注解会自动将对象装配为bean,使用该注解时,可省去setter() 和getter()方法。
被装配的类需要使用 @Component@Service等进行注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

带头大哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值