web后台开发入门了解

来源:互联网 发布:yii2 cms管理系统 编辑:程序博客网 时间:2024/05/17 12:05

模型(Model)-视图(View)-控制器(Controller)(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式。适应于大型项目开发。

其中Model层对应实体对象(entity object):
通常是来自域模型中的对象(也就是现实世界),它常对应于数据库表和文件,这些数据表和文件中存储了执行用例所需的数据。有些实体对象是“临时”对象(如搜索结果),当用例结束后将消失。

View层对应边界对象(boundary object):参与者使用它来同系统交互,这通常包含窗口,屏幕,对话框和菜单。如果有GUI原型,将会知道许多主要的边界对象是什么。

Controller层控制对象(control object):
将边界对象和实体对象关联起来(通常被称为控制器,因为它们通常不是真正的对象),它包含了大部分应用逻辑,它们在用户和存储的数据之间架起一座桥梁。控制对象中包含经常修改的业务规则和策略。这样修改只需要在这些对象中进行,而不会涉及到用户界面和数据库模式。控制器偶尔 (20%的时间内)也会是设计中的“真正对象”,但大部分时间内,控制器只是一个占位符,用于避免您遗漏用例要求的任何功能和系统行为。

  

其中代码中常用的层:

原来的Model层不见了,增加了service层和DAO层。DAO,即Data Access Object,数据访问接口,数据访问:顾名思义就是与数据库打交道。

在这个结构中,control不直接和DAO联系,需要操作数据的时候,通过service层访问DAO层来实现。Service层做的事情,不仅仅是调用DAO操作数据,还会包含了一定的业务逻辑。整个程序的设计,也变成了针对服务进行设计。其中Service层实现时会是一些api接口。

图片和mvc模型内容详情可见http://www.cnblogs.com/daizhj/archive/2009/04/30/1447035.html

SpringMVC中四个基本注解:

@Component、@Repository @Service、@Controller
  看字面含义,很容易却别出其中三个:
  @Controller 控制层,就是我们的action层
  @Service 业务逻辑层,就是我们的service或者manager层
  @Repository 持久层,就是我们常说的DAO层
  而@Component (字面意思就是组件),它在你确定不了事哪一个层的时候使用。
  其实,这四个注解的效果都是一样的,Spring都会把它们当做需要注入的Bean加载在上下文中;
  但是在项目中,却建议你严格按照除Componen的其余三个注解的含义使用在项目中。这对分层结构的web架构很有好处!
  示例:
  1. 控制层
  @Controller // 注释为controller
  @RequestMapping("/login")
  public class LoginAction {
  @Autowired
  @Qualifier("userService") //注释指定注入 Bean
  private IUserService userService;
  。。。。。。 其他略 。。。。。。
  }
  2. 业务逻辑层
  @Service("userService")
  public class UserServiceImpl implements IUserService {
  @Autowired
  @Qualifier("userDao")
  private IUserDao userDao;
  。。。。。。 其他略 。。。。。。
  }
  3. 持久层
  @Repository("userDao")
  public class UserDaoImpl implements IUserDao {
  private static Logger logger = LoggerFactory.getLogger(UserDaoImpl.class);
  private DataSource dataSource;
  private JdbcTemplate template;
  @Autowired
  public UserDaoImpl(DataSource dataSource){
  this.dataSource= dataSource;
  template = new JdbcTemplate(this.dataSource);
  }

转自http://java.chinatarena.com/jsfx/1936.html#6d

这里我们用到的是spring mvc框架。spring是一个大的jar包,与jetty容器直接交流,其中spring使用mvc模式,其上有简单介绍。之后把一系列文件诸如html,css,js文件一起打包部署到jetty容器中,然后当用户发送一个url,实现后台程序。

spring core 主要有两个,即 Bean Factory 和 Aop(面向切面)。

面向切面指Spring包含对面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统服务(例如审计与事物管理)进行内聚性的开发。应用对象只做它们应该做的去完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统关注点,例如日志或事物支持。AOP 作用:
1 监控函数的调用
2 捕获异常发生
实际应用在:事务、安全、日志等横切关注。

切面(Aspect):对横切关注点的抽象(类似类对对象的抽象)
连接点(JoinPoint):被拦截到的点,泛指方法
切入点(CutPoint):对哪些连接点进行拦截的定义
通知(Advice):在特定的连接点,AOP框架执行的动作.前置/后置/例外/最终/环绕通知(调用方法之前执行,全部执行完毕之后)
引入(Introduction): 添加方法或字段到被通知的类。 Spring允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使任何对象实现 IsModified接口,来简化缓存。
目标对象(Target Object): 包含连接点的对象。也被称作 被通知或被代理对象。
AOP代理(AOP Proxy): AOP框架创建的对象,包含通知。 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。
织入(Weaving): 组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样, 在运行时完成织入。  

Bean  Factory:Spring包含和管理应用对象的配置和生命周期,在这个意义上它是一种容器。你可以配置你的每个bean如何被创建。基于一个配置原形为你的bean创建一个单独的实例(单独工厂)或者每次需要时都生成一个新的实例(普通工厂)以及它们是如何相互关联的。

0 0
原创粉丝点击