spring學習筆記

2017-10-20

1:有關<property name="" ref="">理解和解釋?

   1.1<bean id="persion" class="service.Person">

         <property name="axe" ref="axe"> </person>

      :這裏的name和ref雖然是同名的但是name是指Person類中的參數,Person類中有一個Axe類型名叫axe的對象,而ref是當前xml文件中叫做axe的這個bean,把它當作參數傳   進Person中.

  </bean>

  爲什麼要使用<property name="" ref=""></property>中的ref?

 答:

2、有關spring格式,概念的理解?

     項目中有多少個bean類(包含數據庫字段名的屬性,每個屬性包含get和set方法),在spring中就必須配置多少個<bean></bean>

3、spring裏面的bean爲什麼要註冊,作用是什麼?

       3.1:它註冊了,就相當於聲明瞭某個類實例化了,你就不需要再在程序裏實例化這個類了,直接用就可以了;幾乎Java中的所有框架都需要通過配置文件讀取,註冊之後程序運行時就直接讀取配置去找類和方法,而不是之前那種一個類一個類導入的方式。

      3.2:<!--使用set方法注入屬性值-->

     在類中:

   package cn.itcast.property;

  public class Book{

    private String bookname;

 //set方法

 public void setBookname(String bookname){

      thhis.bookname=bookname;

  }

  }

 在spring的配置文xxx.xml裏面:

         <bean id="book" class=" cn.itcast.property.Book">

             <property name="bookname" value="java編程思想"></property>

        </bean>

3.3 <!--注入對象類屬性-->

 在類中:

   UserDao類:

   package cn.com

  public class UserDao{

     public void add(){

          system.out.println("dao add.......");

    }

}

UserService類:

package    cn.com;

public class UserService{

  private UserDao userDao; //注意屬性userDao現在是一個Dao對象了

 public void setUserDao(){    //生成set方法

   this.userDao=userDao;

}


public void add(){

  system.out.println("service add......");

userDao.add();                                 //直接調用UserDao對象userDao中的add()方法【輸出將是"dao add......"】

}

}

    spring配置文件xxxx.xml:

    <bean id="userDao" class="cn.com.UserDao"></bean>  //配置service中Dao對象

  <bean>

  <bean id="userService" class="cn.com.UserService"></bean>

      <property name="userDao" ref="userDao"> </property> // name:service類裏面屬性名稱,ref:dao配置中bean的id值。

</bean>

3.4:注入複雜類型輸入:list,map,數組,properties[文件類型]

 類中:

   package cn.com;

  public class Person{

   private String pname;

   private String[] arrs;

   private List<String> list;

   private Map<String,String> map;

   private Properties properties;

   public void setArrs( String[] arrs){

      this.arrs=arrs;

 }


   public void setList(List<String> list){

    this.list=list;

}


 public void setMap(Map<String,String> map){

     this.map = map;

 }


  public void setProperties(Properties properties){

       this.properties = properties;

 }

}

  spring中配置文件xxx.xml:

   <bean id="person" class="cn.com.Person">

           <property name="arrs">     //arrs爲person類中的一個屬性,

                   <list>                              //數組注入【list注入也是一樣的,略】

                              <value>張三</value>

                               <value>李四</value>

                              <value>王武</value>

                   </list>

           </property>

           <property name="map">           //map注入

                      <map>

                                  <entry key = "a"  value="lucy"></entry>

                                   <entry key="b"  value="mary"></entry>

                                   <entry key="c"  value="juck"></entry>

                      </map>

          </property>

           <property  name="properties">

                   <props>

                                 <prop  key="driverclass">com.mysql.jdbc.Driver</prop>

                                 <prop key="username">root</prop>

                   </props>

            </property>

  </bean>

3.5;spring中的bean管理【註解】

@component:組件(作用在類上)

  spring中提供@Component的三個衍生註解:

       @Controller    :web成

       @Service        :業務層

        @Repository :持久層

4、spring核心概念:aop(面向切面編程)和ioc(控制反轉)。

      4.1 ioc:

        4.1.1:沒有ioc之前,如果我們要調用一個類中的方法,要new一個對象,然後才調用;有了spring 中的ioc,對象的創建不是通過new,而是交給spring配置【有待完善代碼】。

      4.1.2:ioc底層原理使用的技術【理解:解耦合】:(1)xml配置文件(2)dom4j解決xml(3)工廠設計模式(4)反射;

      4.13:IOC與DI: 1)ioc爲控制反轉,把對象創建交給spring進行配置;2)di:依賴注入,向類中的屬性注入值。

    spring是一站式框架:


    1)spring在javaee三層結構中,每一層都提供不同的解決技術

        web層:springMVC; service層:spring的ioc;dao層:spring的jdbc Template

5:service類的作用?【遺留問題】

6:反射機制?























發佈了25 篇原創文章 · 獲贊 0 · 訪問量 4747
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章