spring boot 二三事(自己的小总结)

来源:互联网 发布:c语言while e 编辑:程序博客网 时间:2024/05/13 09:42

spring boot 使用小总结

最近项目里用到了spring boot ,最为一个百度的小菜鸟,我不会班门弄斧的,我只是记录一下我用到的地方,给自己看到,大神看了轻喷啊。

spring boot 众所周知是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者(这是百度百科抄的,哈哈)。

这个东西,你越用,你会越喜欢它,它简化了spring复杂的配置,内置服务器,热部署。开发起来爽的不要不要。
下面总结一下我用到它,经常犯错的地方。

 

 


 

 

 

 

1.spring boot 整合cxf,发布 与调用web service

 

1.1 依赖pom.xml

<dependency>

          <groupId>org.apache.cxf</groupId>

          <artifactId>cxf-rt-frontend-jaxws</artifactId>

          <version>3.1.6</version>

       </dependency>

       <dependency>

          <groupId>org.apache.cxf</groupId>

          <artifactId>cxf-rt-transports-http</artifactId>

          <version>3.1.6</version>

       </dependency>

 

 

1.1.1 JaxWs spring常用注解

@WebService-定义服务 
targetNamespace
:指定命名空间 
name:portType的名称 
portName:port的名称 
serviceName:服务名称 
endpointInterface:SEI接口地址,如果一个服务类实现了多个接口,只需要发布一个接口的方法,可通过此注解指定要发布服务的接口。

 

@WebMethod-定义方法(所注解的方法必须是公开方法) 
operationName
:方法名 
exclude:设置为true表示此方法不是webservice方法,反之则表示webservice方法

 

@WebResult-定义返回值(所注解位置在方法返回值名称处) 
name
:返回结果值的名称

 

@WebParam-定义参数(所注解位置在方法属性名称处) 
name
:指定参数的名称

 

1.1.2编写接口

@WebService

(name = "ClientWebServiceInterf",

targetNamespace = "http://serverService/"

public interfaceClientWebServiceInterf {

   

    @WebMethod

    public String findDSOrderDetail(

           @WebParam(name ="token") Stringtoken);

   

    @WebMethod

    public String updateDSOrder(

           @WebParam(name ="orderid") IntegerorderID,

           @WebParam(name ="successNum") IntegersuccessNum,

           @WebParam(name ="token") Stringtoken);

   

}

 

1.1.3编写实现

@WebService

(targetNamespace="http://serverService/",

endpointInterface="com.ultrasoft.datashare.webservice.ClientWebServiceInterf",

portName = "ClientWebServiceImplPort",

serviceName = "ClientWebServiceImplService")

public class ClientWebServiceImpl implementsClientWebServiceInterf {

。。。。。。。

}

1.1.4.发布服务

@Configuration

public classCxfConfig {

    @Bean

    public ServletRegistrationBean servletRegistrationBean() {

       ServletRegistrationBeanregistration =

               newServletRegistrationBean(newCXFServlet());

       registration.setName("cxf");

       registration.addUrlMappings("/ds/*");

       returnregistration;

    }

    @Bean(name = Bus.DEFAULT_BUS_ID)

    public SpringBus springBus() {

        return newSpringBus();

    }

    @Bean

    public ClientWebServiceInterf userService() {

        return newClientWebServiceImpl();

    }

    @Bean

    public Endpoint endpoint() {

        EndpointImpl endpoint =new EndpointImpl(springBus(), userService());

        endpoint.publish("/client");

        returnendpoint;

    }

   

}

 

1.1.5调用服务

我就发不了,我没调用的代码。。。。

 

 

2. springboot  里restTemplate 用法

 

2.1 restTemplate介绍

RestTemplate是Spring提供的用于访问Rest服务的客户端,

RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。

调用RestTemplate的默认构造函数,RestTemplate对象在底层通过使用java.net包下的实现创建HTTP 请求,

可以通过使用ClientHttpRequestFactory指定不同的HTTP请求方式。

ClientHttpRequestFactory接口主要提供了两种实现方式

1、一种是SimpleClientHttpRequestFactory,使用J2SE提供的方式(既java.net包提供的方式)创建底层的Http请求连接。

2、一种方式是使用HttpComponentsClientHttpRequestFactory方式,底层使用HttpClient访问远程的Http服务,使用HttpClient可以配置连接池和证书等信息。

 

2.1.1 注入restTemplate

平时正常使用:如下:

 @Autowired 

   private RestTemplateBuilder builder;

     

想要上面的用法,就必须在boot的主类里加上如下的代码    

   @Bean 

   public RestTemplate restTemplate() { 

       return builder.build(); 

    }

 

 

 

 实际使用

         @Autowired

         privateRestTemplate restTemplate;

 

 

 

 

                   MultiValueMap<String,String> paramMap = new LinkedMultiValueMap<>();

                   paramMap.add("sessionId",sessionId);

                   Stringjson = restTemplate.postForObject("http://10.24.184.108:8888/center/v1/user/logout",paramMap, String.class);



细节还有很多,我这么菜,作为一个新人,想到什么就写了什么,写博客不是给别人看,老师说,写日记才是个好学生,哈哈,人生第一篇技术博客。。。后续我会努力的。。。补充