嵌入式jetty启动spring(java配置方式),junit测试用

package com.doctor.embeddedjetty;

import java.util.concurrent.TimeUnit;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

public class EmbeddedJettyServer {
	private int port ;
	private Class<?> springConfiguration = null;

	private Server server;

	public EmbeddedJettyServer(Class<?> springConfiguration){
		this(8080, springConfiguration);
	}
	public EmbeddedJettyServer(int port,Class<?> springConfiguration){
		this.port = port;
		this.springConfiguration = springConfiguration;
		init();
	}

	public void init(){
		server = new Server(port);
		ServletContextHandler context = new ServletContextHandler();
		context.setContextPath("/");
		server.setHandler(context);

		AnnotationConfigWebApplicationContext webApplicationContext = new AnnotationConfigWebApplicationContext();
		webApplicationContext.register(springConfiguration);
		DispatcherServlet dispatcherServlet = new DispatcherServlet(webApplicationContext);
		context.addServlet(new ServletHolder(dispatcherServlet), "/*");

	}
	public void start() throws Exception{
		if (server!= null) {
			if (server.isStarting() || server.isStarted() || server.isRunning() ) {
				return;
			}
		}
		TimeUnit.SECONDS.sleep(3);
		server.start();
	}

	public void stop() throws Exception{
		if (server != null) {
			if (server.isRunning()) {
				server.stop();
			}
		}
	}

	public void join() throws InterruptedException{
		if (server!=null) {
			server.join();
		}
	}
}

测试代码:
package com.doctor.embeddedjetty;

import static org.junit.Assert.*;
import static org.hamcrest.core.IsEqual.*;
import org.apache.http.client.fluent.Request;
import org.apache.http.client.fluent.Response;
import org.junit.Test;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

public class EmbeddedJettyForSpringMvcTest {
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>@Test
<span style="white-space:pre">	</span>public void test() throws Throwable{
<span style="white-space:pre">		</span>EmbeddedJettyServer jettyServer = new EmbeddedJettyServer(SpringConfiguration.class);
<span style="white-space:pre">		</span>jettyServer.start();
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>Response response = Request.Get("http://localhost:8080/").execute();
<span style="white-space:pre">		</span>assertThat(response.returnContent().asString(), equalTo("hello"));
<span style="white-space:pre">		</span>jettyServer.stop();
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>@Configuration
<span style="white-space:pre">	</span>@ComponentScan("com.doctor.embeddedjetty")
<span style="white-space:pre">	</span>static class SpringConfiguration{
<span style="white-space:pre">		</span>
<span style="white-space:pre">	</span>}
}
时间: 2024-10-05 16:47:37

嵌入式jetty启动spring(java配置方式),junit测试用的相关文章

.嵌入式jetty启动spring(java配置方式),junit测试用.标准spring 配置(java config) 嵌入式jetty9启动

package com.doctor.embeddedjetty; import java.util.concurrent.TimeUnit; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.springframework.web.con

spring java配置方式@value注解取properties内容为null的一种情况

spring中@Value注解是非常方便的 说下在以java方式配时一点需要注意的地方 上代码看吧 1 package com.yangxin.springinaction.demo1; 2 3 import com.alibaba.druid.pool.DruidDataSource; 4 import org.springframework.beans.factory.annotation.Value; 5 import org.springframework.context.annotat

Spring的Java配置方式

Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1     @Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的: 1.@Configuration 作用于类上,相当于一个xml配置文件: 2.@Bean 作用于方法上,相当于xml配置中的<bean>: 2 示例 该示例演示了通过Java配置的方式进行配置Spring,并且实现了Spring IOC功能. 2.1 创建工程以

SpringBoot学习(二)--&gt;Spring的Java配置方式

二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的: 1.@Configuration 作用于类上,相当于一个xml配置文件: 2.@Bean 作用于方法上,相当于xml配置中的<bean>: 2.示例 该示例演示了通过Java配置的方式进行配置Spring,并且实现了Spring IO

Java配置方式读取外部的资源配置文件

通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: package cn.qlq; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.

Spring Java配置

Java配置 Java配置是Spring 4.x推荐的配置方式,可以完全替代xml配置:Java配置也是Sping Boot 推荐的配置方式.Java配置是通过@Configuration和@Bean来实现的.@Configuration 声明当前类是一个配置类,相当于一个Spring配置的xml文件.@Bean 注解在方法上,声明当前方法的返回值为一个Bean.使用原则:全局配置使用Java配置(如数据库相关配置.MVC相关配置),业务Bean的配置使用注解配置(@Service.@Compo

1.0-springboot的java配置方式

1.创建User实体类. @Data public class User { private String username; private String password; private Integer age; } 2.创建UserDao用于模拟数据库交互. public class UserDao{ public List<User> queryUserList() { List<User> result = new ArrayList<User>(); //

用java 配置方式 搭建springmvc + spring data jpg + mysql

主要记录下java config 的方式配置项目 pom.xml <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency

Spring事务配置方式(一) 注解方式配置

注解方式配置事务 引用自 http://www.cnblogs.com/younggun/archive/2013/07/16/3193800.html <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="d