当前位置: 首页 > news >正文

做网站接私活流程百度搜索引擎排名

做网站接私活流程,百度搜索引擎排名,义乌做网站多少钱,建立网站 多少钱SpringBoot自动配置condition-1Condition是Spring4.0后引入的条件化配置接口#xff0c;通过实现Condition接口可以完成有条件的加载相应的BeanConditional要配和Condition的实现类(ClassCondition)进行使用ClassConditionpublic class ClassCondition implements Condition {…SpringBoot自动配置condition-1Condition是Spring4.0后引入的条件化配置接口通过实现Condition接口可以完成有条件的加载相应的BeanConditional要配和Condition的实现类(ClassCondition)进行使用ClassConditionpublic class ClassCondition implements Condition {    /**     *     * param context 上下文对象。用于获取环境IOC容器ClassLoader对象     * param metadata 注解元对象。 可以用于获取注解定义的属性值     * return     */    Override    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {              //1.需求 导入Jedis坐标后创建Bean        //思路判断redis.clients.jedis.Jedis.class文件是否存在        boolean flag  true;        try {            Class cls  Class.forName(redis.clients.jedis.Jedis);        } catch (ClassNotFoundException e) {            flag  false;        }        return flag;          }}UserConfigConfigurationpublic class UserConfig {    Bean    Conditional(ClassCondition.class)    public User user(){        return new User();    }}测试SpringBootApplicationpublic class SpringbootConditionApplication {    public static void main(String[] args) {        //启动SpringBoot的应用返回Spring的IOC容器        ConfigurableApplicationContext context  SpringApplication.run(SpringbootConditionApplication.class, args);        Object user  context.getBean(user);        System.out.println(user);    }}依赖                    redis.clients            jedis        这一段是判断jedis这个依赖要有没有来决定是否生成对应的bean对象需要实现Condition接口重写mathes方法返回false则不创建对象在这个user对象上加入注解Conditioal(xxx.class)来实现判断。Condition-2需求将类的判断定义为动态的。判断哪个字节码文件存在可以动态指定。自定义条件注解类import org.springframework.context.annotation.Conditional;import java.lang.annotation.*;Target({ElementType.TYPE, ElementType.METHOD})Retention(RetentionPolicy.RUNTIME)DocumentedConditional(ClassCondition.class)public interface ConditionOnClass {    String[] value();}**注意**此处ConditionOnClass为自定义注解Configurationpublic class UserConfig {    Bean    //Conditional(ClassCondition.class)    ConditionOnClass(com.alibaba.fastjson.JSON)    public User user(){        return new User();    }    Bean    ConditionalOnProperty(name  itcast,havingValue  ii)    public User user2(){        return new User();    }}测试User对象的创建SpringBootApplicationpublic class SpringbootConditionApplication {    public static void main(String[] args) {        //启动SpringBoot的应用返回Spring的IOC容器        ConfigurableApplicationContext context  SpringApplication.run(SpringbootConditionApplication.class, args);        Object user  context.getBean(user);        System.out.println(user);    }}自定义注解其实是对原来注解的封装ConditionalOnProperty是看配置文件中是否存在一个这样的键值对如果有则创建、-执行顺序ConditionOnClass的value值找到依赖和自定义注解类通过自定义注解类上的class找到具体要执行的代码决定是否生成bean对象。查看条件注解源码SpringBoot 提供的常用条件注解ConditionalOnProperty判断配置文件中是否有对应属性和值才初始化BeanConditionalOnClass判断环境中是否有对应字节码文件才初始化BeanConditionalOnMissingBean判断环境中没有对应Bean才初始化BeanSpringBoot自动配置-切换内置web服务器查看继承关系图排除Tomcatpom文件中的排除依赖效果             org.springframework.boot            spring-boot-starter-web                                                            spring-boot-starter-tomcat                    org.springframework.boot                                                                spring-boot-starter-jetty            org.springframework.boot        SpringBoot自动配置-Enable注解原理SpringBoot不能直接获取在其他工程中定义的Bean演示代码springboot-enable工程/** * ComponentScan 扫描范围当前引导类所在包及其子包 * * com.itheima.springbootenable * com.itheima.config * //1.使用ComponentScan扫描com.itheima.config包 * //2.可以使用Import注解加载类。这些类都会被Spring创建并放入IOC容器 * //3.可以对Import注解进行封装。 *///ComponentScan(com.itheima.config)//Import(UserConfig.class)EnableUserSpringBootApplicationpublic class SpringbootEnableApplication {    public static void main(String[] args) {        ConfigurableApplicationContext context  SpringApplication.run(SpringbootEnableApplication.class, args);     //获取Bean        Object user  context.getBean(user);        System.out.println(user); }}pom中引入springboot-enable-other               com.itheima          springboot-enable-other            0.0.1-SNAPSHOT      springboot-enable-other工程UserConfigConfigurationpublic class UserConfig {    Bean  public User user() {        return new User();  }}EnableUser注解类import org.springframework.context.annotation.Import;import java.lang.annotation.*;Target(ElementType.TYPE)Retention(RetentionPolicy.RUNTIME)DocumentedImport(UserConfig.class)public interface EnableUser {myImportSelector public class MyImportSelector implements ImportSelector {      Override      public String[] selectImports(AnnotationMetadata importingClassMetadata) {          return new String[]{com.itheima.domain.User, com.itheima.domain.Role};      }  }ImportBeanDefinitionRegistrar 实现类public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {    Override    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {        AbstractBeanDefinition beanDefinition  BeanDefinitionBuilder.rootBeanDefinition(User.class).getBeanDefinition();        registry.registerBeanDefinition(user, beanDefinition);    }}Import4中用法 1.导入Bean2.导入配置类3.导入ImportSelector的实现类。4.导入ImportBeanDefinitionRegistrar实现类自定义依赖SpringBoot事件监听Java中的事件监听机制定义了以下几个角色①事件Event继承 java.util.EventObject 类的对象②事件源Source 任意对象Object③监听器Listener实现 java.util.EventListener 接口 的对象SpringBoot 在项目启动时会对几个监听器进行回调我们可以实现这些监听器接口在项目启动时完成一些操作。ApplicationContextInitializer、SpringApplicationRunListener、CommandLineRunner、ApplicationRunner自定义监听器的启动时机MyApplicationRunner和MyCommandLineRunner都是当项目启动后执行使用Component放入容器即可使用MyApplicationRunner/** * 当项目启动后执行run方法。 */Componentpublic class MyApplicationRunner implements ApplicationRunner {    Override    public void run(ApplicationArguments args) throws Exception {        System.out.println(ApplicationRunner...run);        System.out.println(Arrays.asList(args.getSourceArgs()));    }} MyCommandLineRunnerComponentpublic class MyCommandLineRunner implements CommandLineRunner {    Override    public void run(String... args) throws Exception {        System.out.println(CommandLineRunner...run);        System.out.println(Arrays.asList(args));    }}MyApplicationContextInitializer的使用要在resource文件夹下添加META-INF/spring.factoriesorg.springframework.context.ApplicationContextInitializercom.itheima.springbootlistener.listener.MyApplicationContextInitializerComponentpublic class MyApplicationContextInitializer implements ApplicationContextInitializer {    Override    public void initialize(ConfigurableApplicationContext applicationContext) {        System.out.println(ApplicationContextInitializer....initialize);    }}MySpringApplicationRunListener的使用要添加构造器(最屌)public class MySpringApplicationRunListener implements SpringApplicationRunListener {    public MySpringApplicationRunListener(SpringApplication application, String[] args) {    }    Override    public void starting() {        System.out.println(starting...项目启动中);    }    Override    public void environmentPrepared(ConfigurableEnvironment environment) {        System.out.println(environmentPrepared...环境对象开始准备);    }    Override    public void contextPrepared(ConfigurableApplicationContext context) {        System.out.println(contextPrepared...上下文对象开始准备);    }    Override    public void contextLoaded(ConfigurableApplicationContext context) {        System.out.println(contextLoaded...上下文对象开始加载);    }    Override    public void started(ConfigurableApplicationContext context) {        System.out.println(started...上下文对象加载完成);    }    Override    public void running(ConfigurableApplicationContext context) {        System.out.println(running...项目启动完成开始运行);    }    Override    public void failed(ConfigurableApplicationContext context, Throwable exception) {        System.out.println(failed...项目启动失败);    }}Springboot Admin图形化管理平台以后可以server打成jar包然后其他服务通过端口去绑定注册Springboot 部署部署有两个方式1.通过maven或者命令直接打成jar包通过cmd直接运行jar包即可2.通过war包启动pom.xml里加入war主文件继承SpringBootServletInitializer重写方法即可SpringBoot流程分析初始化配置启动引导类(判断是否有启动主类)判断是否是Web环境获取初始化类、监听器类run启动计时器执行监听器准备环境打印banner可以resource下粘贴自定义的banner 5.创建contextrefreshContext(context);执行refreshContext方法后才真正创建Bean最后给个banner1${AnsiColor.BRIGHT_GREEN}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$${AnsiColor.BRIGHT_YELLOW}$$                                _.ooOoo._                               $$${AnsiColor.BRIGHT_RED}$$                               o888888888o                              $$${AnsiColor.BRIGHT_CYAN}$$                               88  .  88                              $$${AnsiColor.BRIGHT_MAGENTA}$$                               (|  ^_^  |)                              $$${AnsiColor.BRIGHT_GREEN}$$                               O      /O                              $$${AnsiColor.BRIGHT_RED}$$                            ____/-----____                           $$${AnsiColor.BRIGHT_CYAN}$$                          .  |       |$$  .                         $$${AnsiColor.BRIGHT_MAGENTA}$$                         /  |||   :   |||$$                          $$${AnsiColor.BRIGHT_GREEN}$$                        /  _|||||  -:-  |||||-                         $$${AnsiColor.BRIGHT_YELLOW}$$                        |   |    -   $$/ |   |                       $$${AnsiColor.BRIGHT_GREEN}$$                        | _|  -----/  |   |                       $$${AnsiColor.BRIGHT_YELLOW}$$                          .-___  -  ____/-. /                       $$${AnsiColor.BRIGHT_CYAN}$$                      ___. .   /--.--   . . ___                     $$${AnsiColor.BRIGHT_RED}$$                    . _/____.  .                  $$${AnsiColor.BRIGHT_GREEN}$$                  | | :  - .;. _ /;./ -  : | |                 $$${AnsiColor.BRIGHT_YELLOW}$$                     -.   _ ___ /___ _/   .- /  /                 $$${AnsiColor.BRIGHT_CYAN}$$            -.____-._________/____.-____.-         $$${AnsiColor.BRIGHT_MAGENTA}$$                                  ---                               $$${AnsiColor.BRIGHT_YELLOW}$$            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        $$${AnsiColor.BRIGHT_GREEN}$$                     佛祖保佑          永无BUG         永不修改         $$${AnsiColor.BRIGHT_YELLOW}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$${AnsiColor.BRIGHT_YELLOW}2${AnsiColor.BRIGHT_GREEN}/***${AnsiColor.BRIGHT_YELLOW}*      ┌─┐       ┌─┐  ${AnsiColor.BRIGHT_GREEN} *   ┌──┘ ┴───────┘ ┴──┐${AnsiColor.BRIGHT_YELLOW} *   │                 │${AnsiColor.BRIGHT_YELLOW} *   │       ───       │   ${AnsiColor.BRIGHT_BLACK} *   ███████───███████ │${AnsiColor.BRIGHT_GREEN} *   │                 │ *   │       ─┴─       │ *   │                 │ *   └───┐         ┌───┘ ${AnsiColor.BRIGHT_GREEN}*       │         │ *       │         │     *       │         │ *       │         └──────────────┐ *       │                        │ *       │                        ├─┐ *       │                        ┌─┘ *       │                        │ *       └─┐  ┐  ┌───────┬──┐  ┌──┘      *         │ ─┤ ─┤       │ ─┤ ─┤ *         └──┴──┘       └──┴──┘      *                神兽保佑 *               代码无BUG! */版权声明本文为博主原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接和本声明。本文链接http://blog.csdn.net/m0_46690280/article/details/108567548
http://www.yutouwan.com/news/349520/

相关文章:

  • 重庆做网站 外包公司有哪些赣州seo
  • 惠州网站开发公司江苏网站备案要求
  • seo网站关键词优化工具个人品牌网站设计
  • 免费域名注册免备案网站搭建 商城 seo
  • 三只松鼠建设网站前的市场分析企业网站的设计
  • 深圳市建设局质监站官方网站网站数据建设涉及哪些内容
  • 用jsp做婚纱网站的流程什么网站可以请人做软件
  • ps做网站头部的图wordpress分类没有文章
  • 建设网站项目简历莱州市招聘网站
  • 自己做的网站百度搜不到网上做实验的网站
  • 白云电子商务网站建设域名和主机有了怎么做网站
  • 您的域名因未取得工信部网站备案号荆州网站制作公司
  • 网站内部优化是什么意思网站站点多少钱
  • 网站高防服务器租用安装php网站
  • h5哪个网站可以做百度推广网站吸引力
  • 怎么查询网站ftp地址无限时间看片视频
  • 网络班级网站建设校园网站的作用
  • 网站域名攻击上海opencart网站建设
  • 福州中小企业网站制作天元建设集团有限公司 伊永成
  • 重庆市住房和城乡建设厅网站首页可信赖的龙岗网站建设
  • 网站建设在会计里算什么资产wordpress多城市子站
  • 电商网站设计公司立找亿企邦太原企业网站制作
  • 帮别人建设网站多少利润网页制作模板设计
  • 深圳手机集团网站建设手机app软件开发用什么语言
  • 衡水网站建设与制作广西公路建设协会网站
  • 河北省建设机械协会网站首页做动漫网站
  • 网站关键词优化推荐贵阳方舟网络6百度竞价推广思路
  • 下载做网站的软件张家界搜索引擎优化
  • 怎么用虚拟主机做网站首页排名关键词优化
  • 衡阳建设网站公司广州市中心在哪个区