title: Why Spring boot application started twice
body: <p>I am using spring-boot-starter-parent 1.4.3.RELEASE and wrote test cases using mockito-all 2.0.2-beta. After using @MockBean My spring started twice..</p>
  
  <pre><code>2017-02-08 12:03:11.135  INFO 9375 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [class org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$61cd4862] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
  
    .   ____          _            __ _ _
   /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
  ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
   \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
    '  |____| .__|_| |_|_| |_\__, | / / / /
   =========|_|==============|___/=/_/_/_/
   :: Spring Boot ::        (v1.4.3.RELEASE)
  
  2017-02-08 12:03:11.268  INFO 9375 --- [           main] c.v.d.chain.PublisherChainResourceTest   : No active profile set, falling back to default profiles: default
  2017-02-08 12:03:11.271  INFO 9375 --- [           main] o.s.w.c.s.GenericWebApplicationContext   : Refreshing org.springframework.web.context.support.GenericWebApplicationContext@101d4a4e: startup date [Wed Feb 08 12:03:11 IST 2017]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@4adfb1f
  </code></pre>
  
  <p>........................</p>
  
  <pre><code>2017-02-08 12:03:24.109  INFO 9375 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [class org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$61cd4862] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
  
    .   ____          _            __ _ _
   /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
  ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
   \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
    '  |____| .__|_| |_|_| |_\__, | / / / /
   =========|_|==============|___/=/_/_/_/
   :: Spring Boot ::        (v1.4.3.RELEASE)
  
  2017-02-08 12:03:24.267  INFO 9375 --- [           main] c.v.d.t.AdNetworkParamResourceTest       : No active profile set, falling back to default profiles: default
  2017-02-08 12:03:24.272  INFO 9375 --- [           main] o.s.w.c.s.GenericWebApplicationContext   : Refreshing org.springframework.web.context.support.GenericWebApplicationContext@7fcc9949: startup date [Wed Feb 08 12:03:24 IST 2017]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@17660e9a
  </code></pre>
  
  <p>My application.yml,</p>
  
  <pre><code>spring:
    datasource:
      url: jdbc:hsqldb:mem:testdb;sql.syntax_mys=true
      username:
      password:
      driver-class-name: org.hsqldb.jdbcDriver
      testOnBorrow: true
      validationQuery: SELECT 1
    jpa:
      hibernate:
        ddl-auto: create-drop
      properties:
        hibernate:
          format_sql: true
          show_sql: true
  endpoints:
    health:
      sensitive: false
  server:
    tomcat:
      basedir: target/tomcat
      accesslog:
        enabled: true
        pattern: "%v %h %l %u %t &amp;quot;%r&amp;quot; %s %b &amp;quot;%{Referer}i&amp;quot; &amp;quot;%{User-Agent}i&amp;quot; %S %D"
  liquibase:
    user:
    password:
    default-schema: your_schema
    enabled: false
  </code></pre>
  
  <p>How to solve this? 
  Why the spring starts twice when I run "mvn clean install"</p>
  
  <p>My test as follows..</p>
  
  <pre><code>@RunWith(SpringRunner.class)
  @SpringBootTest(classes = ConfigMyApplication.class)
  @WebAppConfiguration
  public class XXResourceTest extends AbstractTransactionalJUnit4SpringContextTests {
  
      private static final String PATH = "/xxxxxxx/";
  
      @Autowired
      XXXXXRepository xxxxxRepository;
  
      @MockBean
      @Autowired
      XXXXXApiService xxxxxApiService;
  
      @Autowired
      WebApplicationContext webApplicationContext;
  
      MockMvc mockMvc;
      HttpHeaders headers;
  
      int xxxId = 1;
      int parentId = 1;
  
      @Before
      public void setUp() {
          this.mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
          MockitoAnnotations.initMocks(this);
  
          headers = new HttpHeaders();
          headers.add(CONTENT_TYPE, APPLICATION_JSON);
      }
  
      @Test
      public void createXXXTest() throws JsonProcessingException, Exception {
          DtoInput input = new DtoInput();
          input.setXXXId(xxxId);
          input.setParentId(parentId);
  
          Parent parent = new Parent();
          parent.setId(parentId);
  
          when(xxxxxApiService.getParent(parentId)).thenReturn(parent);
  
          mockMvc.perform(post(PATH).content(new ObjectMapper().writeValueAsString(input)).headers(headers))
                  .andDo(print()).andExpect(status().isCreated())
                  .andExpect(jsonPath("$.xxId", is(xxId)))
                  .andExpect(jsonPath("$.type", is("type")))
                  .andExpect(jsonPath("$.parentId", is(parentId)));
      }
  </code></pre>