-
Dao,Service,Controller(控制器,控制网站的跳转逻辑serverlet) -->
-
通过给bean加某些注解,可以快速的将bean加入带ioc容器中
某个类上添加上任何一个注解都能快速的将这个组件加入到ioc容器中
Spring上有四个注解
@Controller:控制器,我们推荐给控制器层(serverlet包下的这些)的组件加这个注解
@Service:业务逻辑:我们推荐业务逻辑层的组件添加这个注解:bookService
@Respository:给数据库层(持久化层,dao层)的组件添加这个注解
@Component:给不属于以上几层的组件添加这个注解
注解可以随便加,Spring底层不会验证
我们推荐各自层加各自的注解,给程序员看
使用注解将组件快速的加入到容器中需要几步
1).给要添加的组件上标是个注解的任何一个
2)。告诉Spring自动扫描注解的组件,依赖context名称空间
3).一定要导入AOP包,支持加注解模式 -
使用注解加入到容器中的组件,和使用配置加入到容器中的组件行为都是默认一样的
1.组件的id。默认就是组件的类名首字母小写
2.组件的作用于,默认就是单例 -
context:component-scan :自动组件扫描
base-package="":指定扫描的基础包,把基础包及他下面所有的包的所有加了注解的类,自动扫描进IOC容器中//父类的类型:com.cheng.service,BaseService
//带泛型的父类类型:com.cheng.service.BaseService<com.cheng.dao.book>
//Spring中可以使用带泛型父类类型来确定这个子类的类型
System.out.println(bookService.getClass().getGenericSuperclass());
//ioc是一个容器,帮我管理所有的组件
//1.依赖注入:@Aurowired:自动赋值
//2.某个组件要使用Spring提供更多(IOC,AOP)必须加入到容器中
//体会
//1.容器启动。创建所有单实例的bean
//2.autowired自动装配的时候,是从容器中找这些符合要求的bean
//3.ioc.getBean(“bookServlet”),也是从容器中找到这个bean
//4.容器中包括了所有的bean;
//5.调试Spring的源码,容器到底是什么?其实就是一个map;
//6.这个map中保存所有创建好的bean,并提供外界获取功能…
//7.探索,单实例的bean都保存到哪个map中。[源码-扩展]
//8.源码的调试的思路
// 从helloworld开始的,给helloworld每一个关键步骤打上断点,进去看看里面都做了什么工作
// 1.翻译这些方法是干什么的
// 2.泛型这个方法,看控制台,看debug的每一个变量的变化
// 3.看方法注释
// 学到的一点: 1).规范注释 2).规范类名
Spring IOC的一点心得
最新推荐文章于 2024-09-16 20:08:29 发布