码迷,mamicode.com
首页 > 编程语言 > 详细

170826-关于spring的知识点

时间:2017-08-26 20:40:23      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:参数   指定   实例   factor   9.png   jar包   继承   nbsp   赋值   

         1.Spring作用:  

                 1.生态体系庞大,全能型选手!【springmvc是其一个子模块,jdbcTemplate能直接操作数据库!】    

                 2.将其他组件粘合在一起    

                 3.IOC容器和AOP[Aspect Oreinted Programming]:   

                        Spring的Ioc[Inverse of Controller]机制(控制反转和依赖注入)正是用在此处。   

                        Spring的Ioc(控制反转和依赖注入)    

                        控制反转[Ioc]:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。    

                        控制反转是一种思想,其具体实现就是依赖注入!    

                        依赖注入[DI:Dependency Injection]:组件之间的依赖关系由容器在运行期决定,由容器动态的将某种依赖关系注入到组件之中。         

         2.IOC容器细节  

                 1.使用IOC容器创建对象  

                 2.使用IOC容器在创建对象的同时,给对象的属性赋值  

                 3.在创建对象的过程中,实现组件对象之间的自动装配  

         3.搭建Spring IOC容器需要的开发环境   

                 1.导入IOC容器需要的jar包   

                          spring-beans-4.0.0.RELEASE.jar   

                          spring-context-4.0.0.RELEASE.jar   

                          spring-core-4.0.0.RELEASE.jar   

                          spring-expression-4.0.0.RELEASE.jar   

                          commons-logging-1.1.3.jar   

                       技术分享

                  2.创建Spring配置文件[Spring bean Configuration File]     

          4.实验

                           实验1:

                                <!--实验1:通过IOC容器创建对象,并为属性赋值  -->  

                                <!-- 需要由IOC容器创建对象的全类名 -->  

                                <!-- 为了便于从IOC容器中获取book对象,声明一个一个唯一的id值 -->  

                                <bean id="book01" class="com.neuedu.spring.bean.Book">   

                                <property name="bookId" value="2001"></property>   

                                <property name="bookName" value="三国演义"></property>   

                                <property name="author" value="罗贯中"></property>   

                                <property name="price" value="22.5"></property>  

                                </bean>       

                                @Test   

                                 public void test01() {    

                                     //1.创建IOC容器自身的对象    

                                     //指定配置文件以类路径为基准的配置文件名    

                                     ApplicationContext ioc= new ClassPathXmlApplicationContext("bean.xml");    

                                     //2.从IOC容器中获取指定的对象    

                                     Object bean = ioc.getBean("book01");    

                                     System.out.println(bean);   

                                      }      

                                  注意:  ①IOC容器本身对象创建时,会将配置文件中配置好的bean先创建出来  

                                               ②默认是单实例的,只创建bean的一个对象  

                                               ③如果设置bean的scope属性为prototype,那么创建bean的对象就是多实例的,在获取的时候创建,每次获取对象都会创建新的  

                                               ④.从IOC容器中获取对象   

                                                       ①根据bean的id获取   

                                                       ②根据bean的类型获取:要求容器中指定类型的bean是唯一的

                              bean的后置处理器:  1.指的是在bean的初始化方法前后执行操作的专门的对象。  

                                                                 2.自定义的后置处理器:   

                                                                         1)需要实现接口:org.springframework.beans.factory.config.BeanPostProcessor .   

                                                                         2) 做相应的配置就好!  

                             技术分享

                               

                               技术分享

                             

                            技术分享

                    实验2:通过p名称空间为bean赋值

                        技术分享

                   实验3:测试bean的作用域,分别创建单实例和多实例的bean

                           创建bean

                            技术分享                

                          获取bean

                      技术分享

                         结果和总结

                           技术分享

                   实验4: IOC中bean对象的创建时机  

                           构造函数   

                           技术分享 

                             test中什么都没写

                            技术分享

                               结果:

                             技术分享   

                     实验5:通过构造器为bean的属性赋值和通过index属性指定参数的位置

                             指定顺序时,按照从0开始的方式指定

                             技术分享

                             不指定顺序时,默认按照实体类中的顺序

                            技术分享

                            结果都一样:

                            技术分享        

                       实验6: 给bean的级联属性赋值

                           技术分享

                           技术分享

                          技术分享

                        配置:

                           技术分享

                         测试:

                             技术分享 

                         结果:

                             技术分享

                     实验7.创建带有生命周期方法的bean

                              实体类中写上:

                           技术分享

                             配置文件中的:

                           技术分享

                            测试:

                           技术分享

                            结果:

                           技术分享

                 实验8.bean之间的依赖 depends-on=order被依赖的对象会先创建

                            技术分享

                             tea依赖于stu:

                           技术分享

                              结果:

                              技术分享

                      实验9.通过继承实现bean配置信息的重用

                              技术分享

                              测试:

                              技术分享

                              结果:

                              技术分享

                             这个结果说明:继承的时候,没有的属性会从被继承的那里得到

                        实验10

 

 

                              

 

 

                              

 

170826-关于spring的知识点

标签:参数   指定   实例   factor   9.png   jar包   继承   nbsp   赋值   

原文地址:http://www.cnblogs.com/12344321hh/p/7436174.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!