操作环境是idea
1、创建一个maven项目
下面的选项随便选, 最后直接finish
得到的项目结构就是最简单的这种:
会发现,这种方式创建的是没有xml文件的,后面如果要用到xml文件,需要自己创建。
2、创建相应的类和service
3、创建junit测试类
结构如下:
创建有不同的方式,
基础版:手动创建和测试类相同包名的包,并手动创建相应的类,然后在里面写代码。
快捷版:直接点击被测试类AlertService 使用 Command
+Shift
+T (mac),选择创建新的Test
这是一种快捷键方式,对应的手动操作是,鼠标右键点击类名 使用 goto-Test,即可实现,然后又跳到上面的界面。
我理解的是这种快捷方式可以方便的写出一个被测试类中的所有要测试的方法,不用手动去写,这非常的方便,而且不容易遗漏。对于一个待测试类中有很多要测试的方法的情况非常的友好。
4、实现junit测试类中的代码:
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;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/application.xml"})
public class AlertServiceTest {
@Autowired
private AlertService alertService;
@Test
public void sendSpittleAlert() {
Spittle spittle = new Spittle();
alertService.sendSpittleAlert(spittle);
}
}
注意点:
1)测试类上面要加@RunWith(SpringJUnit4ClassRunner.class)
2)@ContextConfiguration(locations = {"classpath:spring/application.xml"})
这个地方是配置的xml文件地址,其目录结构如下,当然如果只是为了测试,也可以在test文件夹下的resource中的相应位置。
5、xml文件样式:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
"
default-autowire="byName">
<bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory"
p:brokerURL="tcp:localhost:61616"/>
<bean id="queue" class="org.apache.activemq.command.ActiveMQQueue"
c:name="spitter.queue"/>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"
c:_0-ref="connectionFactory"
p:defaultDestinationName="spittle.alert.queue"
p:messageConverter-ref="messageConverter"/>
<bean id="messageConverter" class="org.springframework.jms.support.converter.MappingJackson2MessageConverter"/>
<context:component-scan base-package="com.activemq"/>
</beans>
注意: 1)<context:component-scan base-package="com.activemq"/>
一定要加上这句,否则扫描不进@Service等注解bean
(前提是我没有使用注解的方式扫描,这种方式没有试)
2)要注意上面xmlns和xsi的配置,
如果有点显示灰色,说明没有起效果或没用到,如果:
xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
这两个,没有起效果或者没有配置,启动的时候下面的<context>会报错。