第一步:准备工作
因为service层需要将数据发布到dubbo上,所以在tomcat启动后会直接寻找web.xml, 根据web.xml加载spring/applicationContext_service.xml 和solr.xml (因此此处要从solr中获取数据)
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/applicationContext*.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
找到spring/applicationContext_service.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:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!--注入dubbo-->
<dubbo:protocol name="dubbo" port="20884"></dubbo:protocol>
<dubbo:application name="pyg_search_service"></dubbo:application>
<dubbo:registry address="zookeeper://192.168.35.200:2181"></dubbo:registry>
<dubbo:annotation package="com.pyg.search.Impl"></dubbo:annotation>
</beans>
applicationContext_solr.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:solr="http://www.springframework.org/schema/data/solr"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/solr http://www.springframework.org/schema/data/solr/spring-solr.xsd">
<!--solr服务器地址-->
<solr:solr-server id="solr" url="http://127.0.0.1:8080/solr"></solr:solr-server>
<!--solr模板获取-->
<bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
<constructor-arg ref="solr"></constructor-arg>
</bean>
</beans>
总结: 其实applicationContext_solr.xml 和applicationContext_service.xml的意思是
applicationContext_solr.xml: 获取了solr地址,然后将地址信息作为构造进入solrTemplate的bean获取到了实例化对象,这样在本项目中就可以通过@Autoware进行注入这个bean使用了
applicationContext_service.xml: 将本项目的某些包交给dubbo进行管理, 所以里面注册了dubbo的地址,命名和端口号,这样只需要在包里面相应的类上加上@Service (阿里的) 标签就可以将其服务注册到dubbo远程服务器中,方便其他web层的调用
之后的步骤就如上图所示:基本代码编写了,由于此处难度较小,可以参考笔记day09进行书写.