Spring有很多接口.与各层都有集成.
Spring的核心:
IOC(控制反转/依赖注入)
即自动new对象. 以及配置对象之间的关系
即对普通java对象增加功能.(声明式服务). 实例化a类时,a类中所依赖的元素也会通过setter和配置文件,通过spring自动new.
通过IOC容器来管理对象,以及他们的关系.
代码来源尚学堂:
小例子(不使用spring)
1.写一个UerDao接口
1
package com.zyl.spring.dao;
2![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
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![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
2
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
3
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
5
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
6
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
7
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
8
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
9
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
10
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif)
11
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
2.UserDao接口的两个实现
1
package com.zyl.spring.dao;
2![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
3
public class UserDao4Mysql implements UserDao {
4![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
5
@Override
6
public void delete(String userid) {
7
// TODO Auto-generated method stub
8![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
9
}
10![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
11
@Override
12
public void save(String username, String password) {
13
System.out.println("here is mysql");
14![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
15
}
16![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
17
@Override
18
public void update(String username, String password) {
19
// TODO Auto-generated method stub
20![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
21
}
22![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
23
}
24![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
2
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
3
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
5
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
6
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
8
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
9
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
10
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
11
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
12
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
14
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
15
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
16
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
17
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
18
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
20
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
21
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
23
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif)
24
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
1
package com.zyl.spring.dao;
2![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
3
public class UserDao4Oracle implements UserDao {
4![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
5
@Override
6
public void delete(String userid) {
7
// TODO Auto-generated method stub
8![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
9
}
10![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
11
@Override
12
public void save(String username, String password) {
13
System.out.println("here is oracle");
14![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
15
}
16![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
17
@Override
18
public void update(String username, String password) {
19
// TODO Auto-generated method stub
20![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
21
}
22![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
23
}
24![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
2
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
3
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
5
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
6
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
7
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
8
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
9
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
10
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
11
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
12
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
13
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
14
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
15
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
16
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
17
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
18
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
20
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
21
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
23
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif)
24
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
3.再来一个生产装配dao的工厂
1
package com.zyl.spring.dao;
2![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
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
}
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
2
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
3
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
5
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
6
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
7
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
8
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
9
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
10
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
11
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
12
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
13
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
15
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
16
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif)
4来个User管理类
1
package com.zyl.spring.manager;
2![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
3
import com.zyl.spring.dao.UserDao;
4
import com.zyl.spring.dao.UserDaoFactory;
5![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
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![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
2
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
3
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
4
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
5
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
6
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif)
7
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
8
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
9
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
10
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
11
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
12
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
13
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
14
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
15
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
16
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
17
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
18
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
20
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
21
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
23
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
24
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
25
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
26
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
27
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
28
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
29
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
30
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
31
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
32
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif)
33
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
5.最后client端
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif)
![](http://www.blogjava.net/images/OutliningIndicators/None.gif)
这个写起来很麻烦啊.
运行client端的方法.
UserManager是单例,他的构造方法会在工厂中create一个userdao的实例(代码中创建的是mysql " return new UserDao4Mysql(); " )
然后调用mysql实例的save方法.打印出 here is mysql