Spring有很多接口.與各層都有集成.

Spring的核心
           IOC(控制反轉/依賴注入)

 即自動new對象. 以及配置對象之間的關系

     即對普通java對象增加功能.(聲明式服務). 實例化a類時,a類中所依賴的元素也會通過setter和配置文件,通過spring自動new.

         通過IOC容器來管理對象,以及他們的關系.

代碼來源尚學堂:
     小例子(不使用spring)
1.寫一個UerDao接口

 1package com.zyl.spring.dao;
 2
 3public interface UserDao {
 4   
 5    public void save(String username,String password);
 6    
 7    public void delete(String userid);
 8    
 9    public void update(String username,String password);
10}

11
2.UserDao接口的兩個實現
 1package com.zyl.spring.dao;
 2
 3public class UserDao4Mysql implements UserDao {
 4
 5    @Override
 6    public void delete(String userid) {
 7        // TODO Auto-generated method stub
 8
 9    }

10
11    @Override
12    public void save(String username, String password) {
13        System.out.println("here is mysql");
14
15    }

16
17    @Override
18    public void update(String username, String password) {
19        // TODO Auto-generated method stub
20
21    }

22
23}

24

 1package com.zyl.spring.dao;
 2
 3public class UserDao4Oracle implements UserDao {
 4
 5    @Override
 6    public void delete(String userid) {
 7        // TODO Auto-generated method stub
 8
 9    }

10
11    @Override
12    public void save(String username, String password) {
13        System.out.println("here is oracle");
14
15    }

16
17    @Override
18    public void update(String username, String password) {
19        // TODO Auto-generated method stub
20
21    }

22
23}

24
3.再來一個生產裝配dao的工廠
 1package com.zyl.spring.dao;
 2
 3public class UserDaoFactory {
 4//工廠
 5     private static UserDaoFactory instance=new UserDaoFactory();
 6     
 7     private UserDaoFactory(){}
 8     
 9     public static UserDaoFactory getInstance(){
10         return instance;
11     }

12     
13     public UserDao createUseDao(){
14         return new UserDao4Mysql();
15     }

16}
4來個User管理類
 1package com.zyl.spring.manager;
 2
 3import com.zyl.spring.dao.UserDao;
 4import com.zyl.spring.dao.UserDaoFactory;
 5
 6public class UserManager {
 7    private UserDao userdao;
 8   //寫一個單例
 9    private static UserManager instance=new UserManager();
10    private UserManager(){
11        userdao= UserDaoFactory.getInstance().createUseDao();
12    }
 //構造方法
13    
14    
15    
16    public static UserManager getInstace(){
17        return instance;
18    }

19    public void save(String username,String password){
20        userdao.save(username, password);
21    }

22    
23    public void delete(String userid){
24        
25    }

26    
27    
28    
29    public void update(String username,String password){
30        
31    }

32}

33
5.最后client端
package com.zyl.spring.client;

import com.zyl.spring.manager.UserManager;

public class Client {

    
/**
     * 
@param args
     
*/

    
public static void main(String[] args) {
        UserManager.getInstace().save(
"haha""1/Files/redcoatjk/S_1_NotSpring.zip");

    }


}

這個寫起來很麻煩啊.
  運行client端的方法.
  UserManager是單例,他的構造方法會在工廠中create一個userdao的實例(代碼中創建的是mysql " return new UserDao4Mysql(); " )
  然后調用mysql實例的save方法.打印出 here is mysql