Spring-01

Spring是一个开源框架 并且是轻量级别的框架(模块化)

Spring 是一个IoC 和 AOP 的容器框架

MyBatis ORM框架 持久层框架
SpringMVC是隶属Spring框架中的一个WEB层框架
Spring是一个容器框架
IoC: 控制反转
AO && OOP: 面向切面编程 && 面向对象编程:
OOP针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分
AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
整体包目录如下:
Spring-01_第1张图片
image
创建核心配置文件


    
    
    
    
    
    
        
             
         
        
        
           
                篮球
                足球
           
          
          
           
                篮球
                足球
                篮球
                足球
           
        
          
           
                篮球
                足球
                篮球
                足球
                篮球
                足球
           
        
        
        
            
                
                
                     
                        篮球
                        足球
                        篮球
                        足球
                   
                
            
        
        
            
                
            
        
    


加载核心配置文件 并获取对象

ApplicationContext接口
@Test
public void DuQuConfig(){
    //接口 xx = new 类路径+接口(“xml配置文件位置”)
    ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
    //获取对象  ac.getBean("User")此处User指向xml文件中的Bean的id
    //返回到Object类型  所以进行强制转换
    //User user1 = (User) ac.getBean("User");
    //或者 
    //第一个参数依然指向id   后一个参数指向类路径   即可返回想要的类型
    User user1= ac.getBean("User",User.class);
    System.out.println(user1);
}

当进行加载的时候 默认只会实例化一个对象 即如下图:
![image](http://upload-images.jianshu.io
![Uploading 01_414987.png . . .]
/upload_images/6903669-a8989b453e904f88?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

查看帮助文档:

 Attribute : scope

The scope of this bean: typically "singleton" [ 单例模式  只实例化一次 ] 

(one shared instance, which will be returned by all calls to getBean with the given id), or "prototype"  [  多例模式  ]   

(independent instance resulting from each call to getBean).   [  每一次调用都会独立进行实例化  ]  

 By default, a bean will be a singleton, unless the bean has a parent bean definition in which case it will 

 inherit the parent's scope. Singletons are most commonly used, and are ideal for multi-threaded 

 service objects. Further scopes, such as "request" or "session", might be supported by extended bean 

 factories (e.g. in a web environment). Inner bean definitions inherit the scope of their containing bean 

definition, unless explicitly specified: The inner bean will be a singleton if the containing bean is a 

singleton, and a prototype if the containing bean is a prototype, etc.
 Data Type : string






 在进行配置的时候   scope属性的默认值就是  singleton 单例模式   

可进行重新配置   scope = "prototype"
IoC 控制反转 ---- DI 依赖注入(注入的是值)
方式一:使用setter注入方式 注意在Bean里面必须有Set()方法

在xml文件内进行配置的时候

这里的name可以进行补全 实际上是框架自动映射了Bean里面的Set()方法的首字母小写

[在这里只介绍java的内置类型的注入]

        
        //此处只能注入 字符串 整型等 简单的数据类型  
        //标签里的内容两端不能存在空格 spring是识别空格的
        //因此等号两边不允许有空格  属性和属性之间通过空格进行分隔
            bajie
          
        //存在一种简写方式  如下
          


除却简单数据类型   下面代码演示注入Array  List  Set  Map类型的数据

Bean里的属性如下所示:

private String name;
private String sex;
private String [] hobby_array;
private List hobby_list;
private Set set;
private Map Map;
private Properties Properties;

xml文件内的配置如下所示:


       
            篮球
            足球
       
      
    
      
       
            篮球
            足球
            篮球
            足球
       
    
    
      
       
       //set类型依然会有去重的功能
            篮球
            足球
            篮球
            足球
            篮球
            足球
       
    
    
    
        
            
            //或者如下写法  指定key后 value为List类型
            
                 
                    篮球
                    足球
                    篮球
                    足球
               
            
        
    
    
    //跟map对应的 存在一个properties  这个是HashTable的实现类  HashTable又是对Map类的实现
    //所以properties也是Map的一种
    
    
        
        //此时value内只能存在String类型的值
            String
        
    

你可能感兴趣的:(Spring-01)