初学spring项目(入门解读跟新建项目)
这几天初学spring,整理了一下,这里是入门和新建项目,通过小项目,才能小小掌握spring的原理和方法,更重要的是去解读一下这种思想bean.xml#(model->DAL->DAO.impl->Service)的思想
根据模型生成数据访问对象接口,再根据接口生成具体实现,然后再将处理业务类封装在service里面,接着生成xml来声明service和dao.impl的bean,最后通过spring的bean容器来进行依赖注入。
1.new一个web project,new下图那些包和类。
2.User是用户模型类,UserDAO是用户的数据访问对象类,UserDapImpl是用户的数据访问对象具体实现类,UserService是用户的业务处理类。Bean.xml是spring的容器配置文件(默认读取的是applicationContext.xml,但这里我们做一下特殊,方便学习),test是测试目录,包含UserServiceTest测试文件(new个junit test case)。
3.类库包含jdk、spring.jar、commons-logging.jar、junit.jar(这个点add libraries添加类库,的时候可以看到)
*.这里顺便解决了一个自己长久以来的小困惑,就是spring/hibernate/struts官方并没有提供spring.jar/hibernate.jar/struts.jar这种集成的jar包,这些都是民间(大部分情况是培训机构一些老师)自己根据需要集成的,如果从官方下载的话是有很多包的,自己根据需要添加即可。
--------------------------------------------
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
--------------------------------------------
public interface UserDAO {
public void save(User user);
}
--------------------------------------------
public class UserDAOImpl implements UserDAO {
public void save(User user) {
//如果实现的方法因数据库或环境不同,只需要修改这里
System.out.println("user saved!");
}
}
--------------------------------------------
public class UserService {
private UserDAO userDAO;
public void add(User user) {
userDAO.save(user);
}
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
public UserService(UserDAO userDAO) {
super();
this.userDAO = userDAO;
}
}
--------------------------------------------
<?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.5.xsd">
<!--上面是大豆s的说明,下面是每颗小豆的声明,userService(ref)参考自u的bean 。
然后bean的命名除了可以设置id还可以设置name,不过常用的还是ID,规范一点就好,用那么则可以使用特殊字符,但是没必要。-->
<bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl"></bean>
<bean id="userService" class="com.bjsxt.service.UserService">
<constructor-arg>
<ref bean="u"/>
</constructor-arg>
</bean>
</beans>
--------------------------------------------
public class UserServiceTest {
@Test
public void testAdd() throws Exception {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
UserService service = (UserService)ctx.getBean("userService");
User u = new User();
u.setUsername("zhangsan");
u.setPassword("zhangsan");
service.add(u);
}
}
--------------------------------------------
运行结果,完美!
- -不过重要的是解读一下spring的思想,知道为什么。
⊙_⊙附件包括运行项目源码和用到的jar包(JDK自带和JUNIT在eclipse有)附上吧,免得大家到处找。
^_^还有什么好方法或者疑问和意见欢迎大家提出来一起讨论!
嗯,好的。这确实是很基本的东西,面向新手,我是用myeclipse开发的,刚开始还是想以原理为主,越往后人会越懒,就一定会用开发效率高的东西了,直接add spring support。
嗯。对的。。我是看着尚学堂马士兵的视频来学习的~~