Springフレームワークの知識復習の一つ


Springフレームワーク復習の1つ
1 Springの基本
(1)Springの概要:
        <1>Spring      javaSE/EE full-stack(   )        。
        <2>Spring        (IOC)     (AOP),
        <3>IOC DI:
                * IOC(Inversion Of Control)    :         spring,      
                * DI(Dependency Injection     ):
                     IOC    ,spring         ,spring            。
        <4>Spring IOC     
            *     dao    
                &    :UserDaoImpl ud=new UserDaoImpl(); 
                &       :
                    UserDao ud=new UserDaoImpl();
                           :         ,      ,         。
                             OCP   Open-Close Principle,
                          Open ,      close 。
            * Spring     :
                    Spring     (    +  +    )       ,             
                    UserDao ud=new UserDaoHibernateImpl();
                       ,            ,sprig        。

(2)springの主な利点:階層化アーキテクチャ.
                    ,   J2EE             。
    JavaEE        :
        * WEB :springMVC
        *    :Bean  (IOC)
        *    :Spring JDBC  ,ORM  

(3)スプリングのメリット
    <1>    ,    
           Spring       ,                .
    <2>  AOP  (          ,Servlet    filter   Action    interceptor)
             AOP      ,            ,       
    <3>       
                             ,       。
    <4>      
          Spring  Junit4,         Spring  
    <5>          
          Spring            ,  Struts2,Hibernate,Mybatis,Quartz     。
    <6>  JavaEE API     
          Spring JavaEE     API(JDBC,JavaMail,     ),     ,    API     。

2 Spring構成入門
(1)spring開発パッケージディレクトリ分析
    * docs:API      
    * libs:jar    
                 
                &      :
                    <1>spring-core-4.2.4.RELEASE.jar        --core
                    <2>spring-context-4.2.4.RELEASE.jar --context
                    <3>spring-beans-4.2.4.RELEASE.jar       --beans
                    <4>spring-expression-4.2.4.RELEASE.jar  --expression
                &      :
                    <1>com.springsource.org.apache.commons.logging-1.1.1.jar    --logging
                    <2>com.springsource.org.apache.log4j-1.2.15.jar --log4j
    * schema:      

(2)アプリケーションContext.xml構成制約と基本構成の紹介
            <1>    
                    *         :
                     spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html
                    *       :
                    
                   
                                  eclipse       。
            <2>  STS(Spring Tools Suite Spring      )  XML  ,Schema  。
                      spring-beans-4.2.xsd    :
                    spring-framework-4.2.4.RELEASE\schema\beans\spring-beans-4.2.xsd
            <3>   xsd  ?
                    * XSD ( XML Schemas Definition )XML    ,  DTD    。
                    * XSD   DTD   :
                            & DTD     ,     。
                            &  XML  ,      ,      。
                    * XML Schema(XSD  ):
                        Schema     XML  ,   XML    ,      XML      。
                        Schema    XML           ,        XML        。
            <3>      :
                    * Bean        spring       
                             :
                                  class  :          
                                   name  :            ,              ,
                                                        ,          
                                   id  : name      (      ),       ,
                                                    ,    name  
                    *     :
                        
                            
                            
                        
            <4>    
                            :
                        public interface TestDao {public void sayHello();}
                        public class TestDaoImpl implements TestDao{
                            @Override
                            public void sayHello() {
                                System.out.println("hello spring!");
                            }
                        }
                            :
                        
                            
                        
            <5>Spring IOC    ,       。
                              :
                            :
                               :
                                @Test
                                public void fun1() {
                                    //1       --  xml        src  
                                    ApplicationContext ac=new ClassPathXmlApplicationContext("cn/ieate/applicationContext.xml");
                                    //2      user  
                                    User u = (User) ac.getBean("user");
                                    //3   user  
                                    System.out.println(u);
                                }
                       :      
                        &  :  UserFactory      createUser      user2   ,     
                        &UserFactroy   
                            public class UserFactory {
                                public static User createUser() {
                                    System.out.println("      User");
                                    return new User();
                                }
                            }
                        &      
                            
                            
                        &    
                            @Test
                            public void fun2() {
                                //1       --  xml        src  
                                ApplicationContext ac=new ClassPathXmlApplicationContext("cn/ithereate/applicationContext.xml");
                                //2      user  
                                User u = (User) ac.getBean("user2");
                                //3   user  
                                System.out.println(u);
                            }
                       :      
                        &   :  UserFactory      createUser2      user3   ,     
                        & UserFactroy   
                            public class UserFactory {
                                public User createUser2() {
                                    System.out.println("      User");
                                    return new User();
                                }
                            }
                        &           
                            
                            
                            
                            
                        &    
                            @Test
                            public void fun3() {
                                ApplicationContext ac = new ClassPathXmlApplicationContext("cn/itheima/b_create/applicationContext.xml");
                                User u = (User) ac.getBean("user3");
                                System.out.println(u);
                            }
                <6>Bean   scope  
                        scope   :
                        1 singleton(  ):  ,         
                          :
                        
                        2 prototype:  ,        ,        ,           .
                            Struts2,ActionBean         prototype  ,           Action  ,struts2    
                        
                        3 request: web   ,Spring      ,       request .
                        4 session: web   ,Spring      ,       session .
                        5 globalSession:
                             web   ,  Porlet  ,   Porlet  ,  globalSession    Session 。
                            Portlet   Java Web  ,Portlet    request       。
                <7>Bean     
                        1 Bean   init-method     Bean           。
                        2 Bena   destroy-method    Bean          
                                      Bean        。
                            
                            
                            
                            public class User {
                                private String name;
                                private Integer age;
                                //     
                                public void init() {
                                System.out.println("     ----");
                                }
                                //    
                                public void destroy() {
                                System.out.println("    ----");
                                }
                            }
                <8>Spring Bean     
                      1              
                            
                             name  :   
                             value  :   
                             index  :    (         ,                   )
                             type  :          
                           :
                            
                                
                                
                            
                            public class Person {
                                private String name;
                                private Integer age;
                                public Person() {super();}
                                //     。
                                public Person(String name, Integer age) {
                                    super();
                                    this.name = name;
                                    this.age = age;
                            }
                           :             
                            
                                
                                
                         
                        
                            
                            
                            
                        
                    2 set     (   getter/setter  )
                        
                            
                            
                            
                            
                        
                        public class User {
                            private String name;
                            public String getName() {return name;}
                            public void setName(String name) {this.name = name;}
                            private Integer age;
                            public void setAge(Integer age) {this.age = age;}
                            public Integer getAge() {return age;}
                            private Car c;
                            public Car getC() {return c;}
                            public void setC(Car c) {this.c = c;}
                        }
                    3     p     
                        *     :   p       xmlns:p="http://www.springframework.org/schema/p"
                        *    --  p:       p:   -ref
                        *   :
                            
                            
                    4 Spel(Spring Exepression Language)    
                        *  :name="yyy" value="#{xxx}"
                        *   :   
                            
                                
                                
                         
                        *   : spring          
                                     spring     user   name         
                                user5   name   
                             
                                    
                                    
                                    
                             
                         *   :    Bean          。
                            
                            
                                    
                                    
                             
                    5               
                        
                            
                            
                            
                                
                                    tom
                                    123
                                           
                                    
                                
                            
                            
                            
                                
                                    sb
                                    250
                                    
                                
                            
                            
                            
                                
                                    
                                    
                                    
                                
                            
                            
                            
                                
                                    com.jdbc.mysql.Driver
                                    root
                                    234
                                
                            
                     

3 Springの工場(コンテナ)ApplicationContextとBeanFactory
1 ApplicationContextファクトリの概要:
ApplicationContextインタフェースには2つのインプリメンテーションクラスがあります.C l a s s PathXmlApplicationContext:クラスパスの下(srcの下)にあるSpringプロファイルのロードFileSystemXmlApplicationContext:ローカルディスクの下Springのプロファイルのロード
2 BeanFactoryは時代遅れで、あまり話さない.
3 ApplicationContextとBeanFactoryの違い:
BeanFactory:   getBean()        
ApplicationContext:    ,  applicationContext.xml         。

4 Springプロファイルの配布開発
   :             
  : 
ApplicationContext ac=
new ClassPathXmlApplicationContext("a/applicationContext.xml,b/applicationContext.xml");
   :                 

5 SpringとサーブレットContextListenerリスナー
(1)  :     Spring IOC      ,    applicationContext.xml      bean   
                   
         ApplicationContext ac=new ClassPathXmlApplicationContext("cn/iction/applicationContext.xml");
         User u = (User) ac.getBean("user");
                          ,           ,             Spring    .
             :
             spring            ,        ServletContext  ,       ,
             ServletContext      ,     ServletContextListener   ,
              ServletContext      。
              :
        
              
                org.springframework.web.context.ContextLoaderListener
              
              
                contextConfigLocation
                classpath:applicationContext.xml
              

Springの4つのコアコンポーネントの特徴を簡単に説明します
core   --Spring   
context--   Spring        (applicationContext.xml    ) 
bean ---   applicationContext.xml        
spel---         
    :         core>context>bean>spel