JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Web Framework » Spring web MVC  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 請教王者歸來(Struts2 + Spring + Hibernate)一書中的Spring範例
酸葡萄





發文: 40
積分: 0
於 2015-01-31 09:52 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
1.2.3可以理解,
可是4、6中的 UserDAO userDAO 與 UserBiz userBiz = (UserBiz) context.getBean("userBiz")
為什麼可以直接實例化介面?
前輩可以解惑嗎?先謝了!

1.一個簡單的介面
1
2
3
public interface UserDAO {
  public boolean login(String username, String password);
}


2.一個實例
1
2
3
4
5
6
7
8
9
10
11
12
13
public class UserDAOImpl implements UserDAO {
 
  @Override
  public boolean login(String username, String password) {
    // TODO Auto-generated method stub
    if( username.equals("admin") && password.equals("12345") ){
      System.out.println("DAOImpl.login()");
      return true;
    }    
    return false;
  }
 
}


3.另一個簡單的介面
1
2
3
public interface UserBiz {
  public boolean login(String username, String password);
}


4.另一個簡單介面的實例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class UserBizImpl implements UserBiz {
 
  UserDAO userDAO;//這是做什麼?介面不是無法實例化嗎? 
  
  public void setUserDAO(UserDAO userDAO){
    System.out.println("setUserDAO");
    this.userDAO = userDAO;
  }
  
  @Override
  public boolean login(String username, String password) {
    // TODO Auto-generated method stub
    System.out.println("BizImpl.login");
    
    return userDAO.login(username, password);
  }
 
}


5.XML的設定檔
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans 
  http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  
 
    <bean id="userDAO" class="com.Dao.UserDAOImpl">
    </bean>
    
     <bean id="userBiz" class="com.Dao.UserBizImpl">
       <property name="userDAO" ref="userDAO"/>
    </bean>
  
</beans>


6.執行的Class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class SpringTester {
 
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    ApplicationContext context = new ClassPathXmlApplicationContext("beans-config.xml");
        
    UserBiz userBiz = (UserBiz) context.getBean("userBiz");//UserBiz不是也是介面嗎  
    boolean flag = true;
    flag = userBiz.login("admin", "12345");
    System.out.println("Flag: " + flag);
    
  }
 
}


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
1808 請教王者歸來(Struts2 + Spring + Hibernate)一書中的Spring範例 酸葡萄 2157 2015-01-31 09:52
» JWorld@TW »  Web Framework » Spring web MVC

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8