首先声明该系列不适合零基本的程序员浏览!
总体系列流程总体分析
Spring注解驱动开发:
容器:
AnnotationConfigapplicationContext
组件添加
组件赋值
组件注入
AOP
声明式事务
扩展原理:
BeanFactoryPostProcesor
BeanDefinitionRegistryPostProcessor
ApplicationListener
Spring容器创建过程
Web:
servlet3.0
异步请求
容器注解开发
创建相关maven项目:
添加spring的相关jar包
在我们古老的开发模式中,我们采用的是在xml中写bean的方式注入
创建一个person类
在我们古老的方式中我们是在xml文件中给Person赋值,如下所示:
在古老的方式中,我们在方法中获取xml对象(ApplicationContext),然后调用它的getBean方法得到相关对象对应的参数
运行结果:
上面是比较古老的方式,现在我们采用注解开发进行对比
简单来说,现在我们采用java代码的方式取代了xml文件的配置方式,使得开发更加友好
通过@Configuration来告诉后台我是一个配置类相当于之前的xml文件
添加bean
main方法中的修改
古老的xml方式配置传入的是xml文件,而现在我们传入的是配置类(简单来说原理都差不多)
查看运行结果:
获取person在容器中的类型:
打印出Person这个类在容器中的名字
运行结果:
那如果我要改名呢,只需要把方法名改了就行
在运行一次,它的id名就改变了
获取直接修改@bean里面的值
运行:
传统方式的包扫描
现在注解方式的包扫描:
添加包扫描注解:@ComponentScan,该注解将会扫描“com.atguigu”下面所有@Controller、@Service、@Repository、@Component
com.atguigu下面的类 :
创建controller层,注解上@controller
创建service层,注解上@Service
创建dao层,注解上@Repository
创建Test类:
加载MainConfig配置类
获取容器中所有的bean的名字
打印所有bean的名字
添加junit的jar
运行: