spring框架

1.1 Spring概述
1)Spring是一个开源框架
2)Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能, 在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。
3)Spring是一个IOC(DI)和AOP容器框架。
4)Spring的优良特性
依赖注入:DI——Dependency Injection(加注解加粗样式),**反转控制(IOC)**最经典的实现。

void test() {
		//1.创建IOC容器对象
		ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
		//2.从IOC容器中获取HelloWorld对象
		HelloWorld helloWorld = (HelloWorld) ioc.getBean("helloWorld");
		//3.调用HelloWorld中的sayHello方法
		helloWorld.sayHello();
	}
	//说明:
	以前我们自己用new创建一个对象,现在用IOC(也就是spring)创建对象

面向切面编程:Aspect Oriented Programming——AOP
一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方 类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)。
spring模块
在这里插入图片描述
2、spring bean的配置
IOC(Inversion of Control):反转控制
在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。
反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向——改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。这种行为也称为查找的被动形式。
DI(Dependency Injection):依赖注入
IOC的另一种表述方式:即组件以一些预先定义好的方式(例如:setter 方法)接受来自于容器的资源注入。相对于IOC而言,这种表述更直接。
IOC 描述的是一种思想,而DI 是对IOC思想的具体实现.
基于注解配置Bean
自动装配的概念
1)手动装配:以value或ref的方式明确指定属性值都是手动装配。
2)自动装配:根据指定的装配规则,不需要明确指定,Spring自动将匹配的属性值注入bean中。
装配模式
1)根据类型自动装配:将类型匹配的bean作为属性注入到另一个bean中。若IOC容器中有多个与目标bean类型一致的bean,Spring将无法判定哪个bean最合适该属性,所以不能执行自动装配
2)根据名称自动装配:必须将目标bean的名称和属性名设置的完全相同
3)通过构造器自动装配:当bean中存在多个构造器时,此种自动装配方式将会很复杂。不推荐使用。
选用建议
相对于使用注解的方式实现的自动装配,在XML文档中进行的自动装配略显笨拙,在项目中更多的使用注解的方式实现。

通过注解配置bean
相对于XML方式而言,通过注解的方式配置bean更加简洁和优雅,而且和MVC组件化开发的理念十分契合,是开发中常用的使用方式。
使用注解标识组件
1)普通组件:@Component
标识一个受Spring IOC容器管理的组件
2)持久化层组件:@Repository
标识一个受Spring IOC容器管理的持久化层组件
3)业务逻辑层组件:@Service
标识一个受Spring IOC容器管理的业务逻辑层组件
4)表述层控制器组件:@Controller
标识一个受Spring IOC容器管理的表述层控制器组件
5)组件命名规则
①默认情况:使用组件的简单类名首字母小写后得到的字符串作为bean的id
②使用组件注解的value属性指定bean的id
注意:事实上Spring并没有能力识别一个组件到底是不是它所标记的类型,即使将@Respository注解用在一个表述层控制器组件上面也不会产生任何错误,所以 @Respository、@Service、@Controller这几个注解仅仅是为了让开发人员自己明确当前的组件扮演的角色。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值