// Path: wechat-mp-autoconfigure/src/main/java/com/github/hippoom/wechat/mp/autoconfigure/web/WeChatMpWebConfiguration.java
// @Configuration
// @ComponentScan(value = "com.github.hippoom.wechat.mp.web",
//     includeFilters = {
//         @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Controller.class)
//     }
// )
// public class WeChatMpWebConfiguration {
// 
// }
// 
// Path: wechat-mp-autoconfigure/src/main/java/com/github/hippoom/wechat/mp/autoconfigure/web/WeChatMpWebMethodConfiguration.java
// @Configuration
// @RequiredArgsConstructor
// public class WeChatMpWebMethodConfiguration extends WebMvcConfigurerAdapter {
// 
// 
//     @Override
//     public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
//         argumentResolvers.add(new OpenIdHandlerMethodArgumentResolver());
//     }
// 
// }


import com.github.hippoom.wechat.mp.autoconfigure.web.WeChatMpWebConfiguration;
import com.github.hippoom.wechat.mp.autoconfigure.web.WeChatMpWebMethodConfiguration;
import me.chanjar.weixin.mp.api.WxMpCardService;
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
import me.chanjar.weixin.mp.api.WxMpDataCubeService;
import me.chanjar.weixin.mp.api.WxMpDeviceService;
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
import me.chanjar.weixin.mp.api.WxMpKefuService;
import me.chanjar.weixin.mp.api.WxMpMaterialService;
import me.chanjar.weixin.mp.api.WxMpMenuService;
import me.chanjar.weixin.mp.api.WxMpQrcodeService;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.WxMpStoreService;
import me.chanjar.weixin.mp.api.WxMpTemplateMsgService;
import me.chanjar.weixin.mp.api.WxMpUserBlacklistService;
import me.chanjar.weixin.mp.api.WxMpUserService;
import me.chanjar.weixin.mp.api.WxMpUserTagService;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
package com.github.hippoom.wechat.mp.autoconfigure;


/**
 * Provide default {@link WxMpService}.
 *
 * @see WeChatMpProperties
 * @see WeChatMpWebConfiguration
 * @see WeChatMpWebMethodConfiguration
 * @since 0.1.0
 */
@Configuration
@EnableConfigurationProperties(WeChatMpProperties.class)
@Import(
    {
// Path: wechat-mp-autoconfigure/src/main/java/com/github/hippoom/wechat/mp/autoconfigure/web/WeChatMpWebConfiguration.java
// @Configuration
// @ComponentScan(value = "com.github.hippoom.wechat.mp.web",
//     includeFilters = {
//         @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Controller.class)
//     }
// )
// public class WeChatMpWebConfiguration {
// 
// }
// 
// Path: wechat-mp-autoconfigure/src/main/java/com/github/hippoom/wechat/mp/autoconfigure/web/WeChatMpWebMethodConfiguration.java
// @Configuration
// @RequiredArgsConstructor
// public class WeChatMpWebMethodConfiguration extends WebMvcConfigurerAdapter {
// 
// 
//     @Override
//     public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
//         argumentResolvers.add(new OpenIdHandlerMethodArgumentResolver());
//     }
// 
// }


// Path: wechat-mp-autoconfigure/src/main/java/com/github/hippoom/wechat/mp/autoconfigure/WeChatMpConfiguration.java
import com.github.hippoom.wechat.mp.autoconfigure.web.WeChatMpWebConfiguration;
import com.github.hippoom.wechat.mp.autoconfigure.web.WeChatMpWebMethodConfiguration;
import me.chanjar.weixin.mp.api.WxMpCardService;
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
import me.chanjar.weixin.mp.api.WxMpDataCubeService;
import me.chanjar.weixin.mp.api.WxMpDeviceService;
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
import me.chanjar.weixin.mp.api.WxMpKefuService;
import me.chanjar.weixin.mp.api.WxMpMaterialService;
import me.chanjar.weixin.mp.api.WxMpMenuService;
import me.chanjar.weixin.mp.api.WxMpQrcodeService;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.WxMpStoreService;
import me.chanjar.weixin.mp.api.WxMpTemplateMsgService;
import me.chanjar.weixin.mp.api.WxMpUserBlacklistService;
import me.chanjar.weixin.mp.api.WxMpUserService;
import me.chanjar.weixin.mp.api.WxMpUserTagService;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

package com.github.hippoom.wechat.mp.autoconfigure;


/**
 * Provide default {@link WxMpService}.
 *
 * @see WeChatMpProperties
 * @see WeChatMpWebConfiguration
 * @see WeChatMpWebMethodConfiguration
 * @since 0.1.0
 */
@Configuration
@EnableConfigurationProperties(WeChatMpProperties.class)
@Import(
    {
        WeChatMpWebConfiguration.class,