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

网站流水怎么做个人网站规划书模板

网站流水怎么做,个人网站规划书模板,建设网站需要营业执照吗,制作简历的免费网站一、你真的懂注解吗 你是否使用过Autowired却不知道是如何生效的? 这几个注解你一定很熟悉: OverrideDeprecatedTransactional 那么你有进一步思考过怎么生效的吗?注解到底是什么?注解,到底是信息?还是指…

一、你真的懂注解吗

你是否使用过@Autowired却不知道是如何生效的?
这几个注解你一定很熟悉:

  • @Override
  • @Deprecated
  • @Transactional
    那么你有进一步思考过怎么生效的吗?注解到底是什么?注解,到底是信息?还是指令?是标签?还是注释?

二、注解是一封写给反射器的“情书”

  • 注解 = 元数据
    举个例子,你在缅甸被嘎腰子了,这时你想了一个办法,偷偷张贴一张小纸条,上面写着“救我”。那么,路过的人看到这个纸条就会想着替你做点什么。

再来讲讲注解的生命周期:

  • source写完就撕掉(例如override)只作用在源码时期。
  • class 打包了但是JVM不看,作用在class期间(小纸条被翻译成class,但是JVM不看)。
  • runtime这个小纸条可以在程序运行时期被读取。

三、实战一:自定义一个注解,实现“自动字段注入”

“太监宣旨”→ 注解写在类上,反射器执行“圣旨”。

  • 创建一个圣旨
import java.lang.annotation.*;@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ShannonAnnotation {int age() default 1 ;String name() default "";
}
  • 宣读圣旨(放在类上)
    @ShannonAnnotation(name = "shannon",age = 18)public static class People{int age;String name;public void sayHello(){System.out.println("hello i am shannon");}}
  • 执行圣旨(反射器调用)
    public static void main(String[] args) {Class<People> peopleClass = People.class;Annotation[] annotations = peopleClass.getAnnotations();// 遍历类上所有的注解,找到我们的圣旨!for (Annotation annotation : annotations) {if (annotation instanceof ShannonAnnotation){ShannonAnnotation annotation1 = (ShannonAnnotation) annotation;System.out.println("age:"+annotation1.age());System.out.println("name:"+annotation1.name());}}
//        invoketry {peopleClass.getMethod("sayHello").invoke(new People());} catch (IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {throw new RuntimeException(e);}}
  • 结果:
    在这里插入图片描述

四、实战二:解析 Spring 是如何将“尊贵妃”变“宠妃”

  • 搭建Spring Debug环境
    – 搭建方法见编译Spring
  • 创建一个项目如下:
    在这里插入图片描述
@Service
public class HelloService {public void sayHi(){System.out.println("hello world");}
}
@Service
public class MyService {@Autowiredpublic HelloService helloService;
}

由上可知,在MyService中使用@Autowired注解,将HelloService注入。

  1. 进入方法打断点
    这里解释一下方法的作用,scan方法主要是扫描basePackage的所有bean,注册到BeanDefinitions当中,refresh是真正启动整个容器。
    在这里插入图片描述
    在这个方法打断点org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean,这个方法是注入bean属性的方法。
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a29bf11cde1243c5a7f96b947d12be9c.png

可以看到,上图,有一个AutoWiredAnnontationBeanPostProcessor类,这个就是@AutoWired的处理方法,点进去看看!
在这里插入图片描述
可以看到上图中,metadata中包含一个injectedElements 包含了HelloService。spring 调用metadatainject方法完成属性的注入!

总结

  1. 注解只是一段信息
  2. 注解不是具体的处理逻辑
  3. 处理逻辑由其他代码实现
http://www.hkea.cn/news/877729/

相关文章:

  • 企业营销型网站做的好网络营销的有哪些特点
  • 网站开发 合同兰州快速seo整站优化招商
  • 网站开发技术现状深圳网络营销推广培训
  • 知名网络公司有哪些河北网站seo
  • 学做网站多少钱关键词难易度分析
  • 传奇如何做网站网站建设策划书案例
  • 龙岗 网站建设深圳信科最好用的搜索神器
  • 动态网站开发日志重庆seo整站优化报价
  • 魔站网站建设微信公众号运营推广方案
  • 好的网站建设公司营销推广外包公司
  • 教育机构做网站素材长尾关键词爱站
  • 做网站选什么系统企业网站seo推广
  • 山东省南水北调建设管理局网站腾讯网qq网站
  • 菏泽做网站公司sem网络营销
  • 专业建站外包兰州网络优化seo
  • 企业邮箱腾讯杭州seo按天计费
  • 政府网站建设先进个人事迹互动营销
  • 网站建设之织梦模板做国外网站
  • 小程序电商模板seo关键词排名优化品牌
  • 泉州网站优化排名百度关键字优化价格
  • 上海网站建设好处win优化大师官网
  • 适合毕设做的简单网站初学seo网站推广需要怎么做
  • 想把书放到二手网站如何做深圳seo关键词优化
  • 合肥网站优化排名推广合理使用说明
  • 如何网站专题策划互联网推广是什么
  • 用hadoop做网站日志分析推广工作的流程及内容
  • 凡科做网站技巧站长之家域名信息查询
  • 网站建设国际深圳网络营销课程ppt
  • 网站开发人员需要具备的能力电脑培训班多少费用
  • discuz集成wordpressseo的概念是什么