Spring有很多接口.與各層都有集成.
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
Spring的核心:
IOC(控制反轉/依賴注入)
即自動new對象. 以及配置對象之間的關系
即對普通java對象增加功能.(聲明式服務). 實例化a類時,a類中所依賴的元素也會通過setter和配置文件,通過spring自動new.
通過IOC容器來管理對象,以及他們的關系.
代碼來源尚學堂:
小例子(不使用spring)
1.寫一個UerDao接口
1
package com.zyl.spring.dao;
2
3
public 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接口的兩個實現
2

3

4

5

6

7

8

9

10

11

1
package com.zyl.spring.dao;
2
3
public 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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

1
package com.zyl.spring.dao;
2
3
public 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的工廠
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

1
package com.zyl.spring.dao;
2
3
public 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管理類
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

1
package com.zyl.spring.manager;
2
3
import com.zyl.spring.dao.UserDao;
4
import com.zyl.spring.dao.UserDaoFactory;
5
6
public 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端
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

















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