第一步:准备工作
因为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进行书写.