Spring3.X企业开发实战(一):入门实例
2016-07-20 09:58
761 查看
具体例子,请参考这本企业开发实战的第二章快速入门,上面很详细的。https://pan.baidu.com/s/1hshmzg4
下面是具体的实例代码:
https://github.com/Jalon2015/SpringMVC_demo
架构分析:
持久层:DAO(增删改查的sql),Domain(实体类,跟数据库的字段对应)
业务层:Service(调用DAO)
表现层:Web层(这里又分为MVC,model-数据模型,前后台传送的数据,v-view视图,比如jsp,c-Controller控制器,业务逻辑处理,接收请求并进行响应)
具体实现:
配置文件,web.xml和spring-application.xml,其中web.xml主要是配置tomcat的,比如一些过滤器,载入spring配置文件,配置DispatcherServlet等等;spring-application.xml主要是配置跟spring框架有关的东西,比如mvc配置,基本的包扫描,注解驱动等等
底层DAO,注解为@Repository,用Spring的jdbc模板类来进行实现,
业务层Service,注解为@Service,然后@Autowired注入DAO,再调用DAO处理数据。这个业务层主要是进行数据的处理,所以这里的代码块多一些
表现层的Controller,注解为@Controller,主要是接收http请求并进行响应,其实就是业务逻辑的处理,所以这里的代码块不宜过多,细节的实现都放到Service层
单元测试:没写表现层之前,可以先用JUnit4进行单元测试,创建1个test case,代码大致如下
小结:
![](http://img.blog.csdn.net/20160720183239979)
下面是具体的实例代码:
https://github.com/Jalon2015/SpringMVC_demo
架构分析:
持久层:DAO(增删改查的sql),Domain(实体类,跟数据库的字段对应)
业务层:Service(调用DAO)
表现层:Web层(这里又分为MVC,model-数据模型,前后台传送的数据,v-view视图,比如jsp,c-Controller控制器,业务逻辑处理,接收请求并进行响应)
具体实现:
配置文件,web.xml和spring-application.xml,其中web.xml主要是配置tomcat的,比如一些过滤器,载入spring配置文件,配置DispatcherServlet等等;spring-application.xml主要是配置跟spring框架有关的东西,比如mvc配置,基本的包扫描,注解驱动等等
底层DAO,注解为@Repository,用Spring的jdbc模板类来进行实现,
业务层Service,注解为@Service,然后@Autowired注入DAO,再调用DAO处理数据。这个业务层主要是进行数据的处理,所以这里的代码块多一些
表现层的Controller,注解为@Controller,主要是接收http请求并进行响应,其实就是业务逻辑的处理,所以这里的代码块不宜过多,细节的实现都放到Service层
单元测试:没写表现层之前,可以先用JUnit4进行单元测试,创建1个test case,代码大致如下
package com.jalon.test; import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.jalon.domain.User; import com.jalon.service.UserService; @RunWith(SpringJUnit4ClassRunner.class)//1.基于JUnit4的Spring测试框架 @ContextConfiguration(locations = {"classpath:spring/application-config.xml"})//2.启动Spring容器 public class UserServiceTest { @Autowired private UserService userService; @Test public void hasMatchUser() { boolean b2 = userService.hasMatchUser("admi1n", "123"); System.out.println(b2); } @Test public void findByUserName() { User user = userService.findByUserName("admin"); System.out.println(user.getUserId()); //assertEquals(user.getUserName(), "admin"); } @Test public void test() { fail("Not yet implemented"); } }
小结:
相关文章推荐
- Maven项目,右键-update project后JRE system Library变成eclipse默认的版本
- 字符排序
- System.getProperty Java 中的使用
- Ubuntu下jdk配置
- struts2工作原理
- 最新eclipse整合Struts2.3.29+Hibernate5.2.1+Spring4.3.1(一)Struts篇
- java awt hello world程序乱码
- Java开发之Spring MVC(五)
- mybatis There is no getter for property named 'xx' in 'class java.lang.String
- JAVA处理string工具 的外部jar包
- Java快速排序
- Java对象序列化剖析
- spring ,mybatis多数据源
- Java 中Map 的用法详解
- 五分钟快速集成支付
- 三:如何创建并运行 Java 线程
- Spring mvc 下Ajax获取JSON对象问题 406错误
- JAVA图片转为base64格式
- struts中上传文件配置
- 单工半双工和全双工