欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 后台管理


新闻资讯

MENU

软件开发知识

比如可以自定义JUnit执行 CAD加密 器来支持非入侵的POJO测试类

点击: 次  来源:宝鼎软件 时间:2017-06-01

原文出处: 磁针石

本部门先对spring做简朴先容,然后先容mockito和powermock在spring测试中的应用。

此部门需要筹备的软件:

基于JDK 7或以上版本

Eclipse   http://www.oracle.com/technetwork/java/javase/downloads/index.html
Mockito    http://mockito.org/
Spring     http://maven.springframework.org/release/org/springframework/spring/

Spring简介

Spring是Java的开源企业应用措施开拓框架,它为 Java beans节制容器的翻转。最初由Rod Johnson在2003年6月基于Apache2.0许可证宣布。
Spring框架处理惩罚底层,使我们可以或许专注于应用措施逻辑。 Spring可以或许从POJOs(Plain Old Java Objects)非侵入式的构建应用措施。好比:
•不需要处理惩罚servlet或servlet API,Java要领可以处理惩罚HTTP POST / GET请求。
•不需要处理惩罚web处事API,Java要领可提供RESTful Web处事
•不需要处理惩罚事务API,Java要领可以执行数据库事务
•不需要处理惩罚长途API,软件开发,当地Java要领利用RPC(remote procedure call)
•不需要处理惩罚JMS API,Java要领可以利用和处理惩罚动静
•不需要处理惩罚JMX API,Java要领可以作为打点扩展

Spring的特性:
•开源应用措施框架
•企业轻量级应用框架
•非侵入性(基于POJO)
•模块化
•可扩展用于其他框架
•Java企业应用措施的事实尺度

优势:
•利用POJO、轻,非入侵
•通过依赖注入和接口定向实现松耦合
•通过aspect和配合约定实现声明式编程
•通过aspect和模板淘汰代码

好比可以自界说JUnit执行 CAD加密 器来支持非入侵的POJO测试类

Spring Framework的焦点容器:

•  Core and Beans:提供IOC(Inversion of control)和DI(dependency injection)

• Context:雷同JNDI(Java Naming and Directory Interface,Java定名和目次接口),用于在框架中会见工具。

• 暗示语言(Expression Language):SpEL,用于查询和修改工具图并评估数学表达式。

AOP模块
AOP是Spring面向方面编程的实现。它解耦业务逻辑和日志、安详等基本代码。

instrumentation模块
提供instrumentation类支持,通过MBean展示容器资源和辅佐JMX打点。

动静模块
包括Spring Integration项目标要害抽象如Message、MessageChannel和的MessageHandler。

数据会见模块
•JDBC:JDBC抽象层
•ORM:为风行的工具干系映射提供集成层API,包罗JPA,JDO,Hibernate和iBATIS
•OXM:工具/ XML映射抽象层,实现了JAXB,Castor,XMLBeans的,JiBX和Xstream

•JMS:出产和消费动静
•事务:它支持programmatic和programmatic事务打点

web层
该网络层包罗web,webmvc / servlet中,WebSocket和webmvc-portlet模块:

•Web:文件上传等基本组件。
•Webmvc:
•Portlet
•WebSocket

Spring项目涉及安详设置、Web应用措施、大数据、LDAP等。 Spring框架是个中一部门。
JNDI(Java Naming and Directory Interface,Java定名和目次接口)

Java相关的一些博客:

http://www.gualtierotesta.it/

IoC(Inversion of Control)和DI(dependency injection)常常不区分利用。IoC由IoC实现。

两种范例的依赖注入:

•  Constructor injection

•  Setter injection

好比界说:

<bean id="bookLister" class="com.packt.di.BookLister">
<constructor-arg ref="bookService"/>
</bean>
<bean id="bookService" class="com.packt.di.BookServiceImpl" />

等同于:

BookService service = new BookServiceImpl();
BookLister bookLister = new BookLister(service);
<bean id="bookListerSetterInjection" class="com.packt.di.BookLister">
<property name="bookService" ref="bookService" />
</bean>
<bean id="bookService" class="com.packt.di.BookServiceImpl" />

等同于:

BookService service = new BookServiceImpl();
BookLister bookLister = new BookLister();
bookLister.setBookService(service);

Spring IoC container 即ApplicationContext。打点的容器叫bean,好比bookService就是bean,即Spring IoC container打点的工具。

bean的属性有:

class、name(即id)、scope、constructor-arg、properties、lazy-init(利用时才建设容器)、init-method 、destroy-method。

scope的取值有:

  • singleton:每个bean实例一个容器。实际上是每个bean实例一个classloader。
  • prototype:每个bean实例多个实例工具。
  • request:每个bean实例一个HTTP request。
  • session:每个bean实例一个HTTP session。
  • global-session:每个bean实例一个全局HTTP session。
  • 生命周期:

    好比可以自界说JUnit执行 CAD加密 器来支持非入侵的POJO测试类

    第一个实例

    前提: Maven和STS安装OK,都可以从Eclipse 市场安装。

    新建Spring Starter Project项目,

    Name:SpringOverview 注明名字前后不要有空格。

    Type:Maven

    其他用默认设置。