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

做四级题目的网站哪里可以大量找到广告主

做四级题目的网站,哪里可以大量找到广告主,网站服务商查询,设计师自己做网站1、BeanDefinition BeanDefinition表示Bean定义#xff0c;BeanDefinition中存在很多属性用来描述一个Bean的特点。比如#xff1a; class#xff0c;表示Bean类型scope#xff0c;表示Bean作用域#xff0c;单例或原型等lazyInit#xff1a;表示Bean是否是懒加载initM…1、BeanDefinition BeanDefinition表示Bean定义BeanDefinition中存在很多属性用来描述一个Bean的特点。比如 class表示Bean类型scope表示Bean作用域单例或原型等lazyInit表示Bean是否是懒加载initMethodName表示Bean初始化时要执行的方法destroyMethodName表示Bean销毁时要执行的方法 在Spring中我们经常会通过以下几种方式来定义Bean bean /BeanComponent(Service,Controller) 这些可以称之申明式定义Bean。 还可以编程式定义Bean那就是直接通过BeanDefinition比如 AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(AppConfig.class);// 生成一个BeanDefinition对象并设置beanClass为User.class并注册到ApplicationContext中 AbstractBeanDefinition beanDefinition BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition(); beanDefinition.setBeanClass(User.class); context.registerBeanDefinition(user, beanDefinition);System.out.println(context.getBean(user));还可以通过BeanDefinition设置一个Bean的其他属性 beanDefinition.setScope(prototype); // 设置作用域 beanDefinition.setInitMethodName(init); // 设置初始化方法 beanDefinition.setLazyInit(true); // 设置懒加载和申明式事务、编程式事务类似通过 bean/ BeanComponent等申明式方式所定义的Bean最终都会被Spring解析为对应的BeanDefinition对象并放入Spring容器中。 2、BeanDefinitionReader BeanDefinitionReader在我们使用Spring时用得少但在Spring源码中用得多 一AnnotatedBeanDefinitionReader 可以直接把某个类转换为BeanDefinition并且会解析该类上的注解比如 AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(AppConfig.class);AnnotatedBeanDefinitionReader annotatedBeanDefinitionReader new AnnotatedBeanDefinitionReader(context);// 将User.class解析为BeanDefinition annotatedBeanDefinitionReader.register(User.class);System.out.println(context.getBean(user));二XmlBeanDefinitionReader 可以解析 bean/ 标签 AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(AppConfig.class);XmlBeanDefinitionReader xmlBeanDefinitionReader new XmlBeanDefinitionReader(context); xmlBeanDefinitionReader.loadBeanDefinitions(spring.xml);System.out.println(context.getBean(user));三ClassPathBeanDefinitionScanner 扫描到的类上如果存在Component注解那么就会把这个类解析为一个BeanDefinition AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(); context.refresh();ClassPathBeanDefinitionScanner scanner new ClassPathBeanDefinitionScanner(context); scanner.scan(com.zhouyu);System.out.println(context.getBean(userService));3、BeanFactory BeanFactory表示Bean工厂负责创建Bean并且提供获取Bean的API。ApplicationContext是BeanFactory的一种继承了BeanFactory拥有BeanFactory支持的所有功能。不过ApplicationContext比BeanFactory更加强大ApplicationContext还基础了其他接口也就表示ApplicationContext还拥有其他功能比如MessageSource表示国际化ApplicationEventPublisher表示事件发布EnvironmentCapable表示获取环境变量等等。 在Spring源码中BeanFactory接口存在一个非常重要的实现类是DefaultListableBeanFactory也是非常核心的。 所以我们可以直接来使用DefaultListableBeanFactory而不用使用ApplicationContext的某个实现类 DefaultListableBeanFactory beanFactory new DefaultListableBeanFactory();AbstractBeanDefinition beanDefinition BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition(); beanDefinition.setBeanClass(User.class);beanFactory.registerBeanDefinition(user, beanDefinition);System.out.println(beanFactory.getBean(user));DefaultListableBeanFactory是非常强大的支持很多功能 它实现了很多接口表示它拥有很多功能 AliasRegistry支持别名功能一个名字可以对应多个别名BeanDefinitionRegistry可以注册、保存、移除、获取某个BeanDefinitionBeanFactoryBean工厂可以根据某个bean的名字、或类型、或别名获取某个Bean对象SingletonBeanRegistry可以直接注册、获取某个单例BeanSimpleAliasRegistry它是一个类实现了AliasRegistry接口中所定义的功能支持别名功能ListableBeanFactory在BeanFactory的基础上增加了其他功能可以获取所有BeanDefinition的beanNames可以根据某个类型获取对应的beanNames可以根据某个类型获取{类型对应的Bean}的映射关系HierarchicalBeanFactory在BeanFactory的基础上添加了获取父BeanFactory的功能DefaultSingletonBeanRegistry它是一个类实现了SingletonBeanRegistry接口拥有了直接注册、获取某个单例Bean的功能ConfigurableBeanFactory在HierarchicalBeanFactory和SingletonBeanRegistry的基础上添加了设置父BeanFactory、类加载器表示可以指定某个类加载器进行类的加载、设置Spring EL表达式解析器表示该BeanFactory可以解析EL表达式、设置类型转化服务表示该BeanFactory可以进行类型转化、可以添加BeanPostProcessor表示该BeanFactory支持Bean的后置处理器可以合并BeanDefinition可以销毁某个Bean等等功能FactoryBeanRegistrySupport支持了FactoryBean的功能AutowireCapableBeanFactory是直接继承了BeanFactory在BeanFactory的基础上支持在创建Bean的过程中能对Bean进行自动装配AbstractBeanFactory实现了ConfigurableBeanFactory接口继承了FactoryBeanRegistrySupport这个BeanFactory的功能已经很全面了但是不能自动装配和获取beanNamesConfigurableListableBeanFactory继承了ListableBeanFactory、AutowireCapableBeanFactory、ConfigurableBeanFactoryAbstractAutowireCapableBeanFactory继承了AbstractBeanFactory实现了AutowireCapableBeanFactory拥有了自动装配的功能DefaultListableBeanFactory继承了AbstractAutowireCapableBeanFactory实现了ConfigurableListableBeanFactory接口和BeanDefinitionRegistry接口所以DefaultListableBeanFactory的功能很强大 4 、ApplicationContext ApplicationContext是个接口实际上也是一个BeanFactory不过比BeanFactory更加强大比如 HierarchicalBeanFactory拥有获取父BeanFactory的功能ListableBeanFactory拥有获取beanNames的功能ResourcePatternResolver资源加载器可以一次性获取多个资源文件资源等等EnvironmentCapable可以获取运行时环境没有设置运行时环境功能ApplicationEventPublisher拥有广播事件的功能没有添加事件监听器的功能MessageSource拥有国际化功能## 8、AnnotationConfigApplicationContext ApplicationContext两个比较重要的实现类 AnnotationConfigApplicationContextClassPathXmlApplicationContext 5、BeanPostProcessor BeanPostProcess表示Bena的后置处理器可以定义一个或多个BeanPostProcessor 一个BeanPostProcessor可以在任意一个Bean的初始化注意不是创建之前以及初始化之后去额外的做一些用户自定义的逻辑。 Component public class MyBeanPostProcessor implements BeanPostProcessor {Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {if(user.equals(beanName)) {System.out.println(user初始化前);}return bean;}Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {if(user.equals(beanName)) {System.out.println(user初始化后);}return bean;} }6、BeanFactoryPostProcessor BeanFactoryPostProcessor表示Bean工厂的后置处理器其实和BeanPostProcessor类似BeanPostProcessor是干涉Bean的创建过程BeanFactoryPostProcessor是干涉BeanFactory的创建过程。 7、FactoryBean 如果我们想一个Bean完完全全由我们来创造可以通过FactoryBean Component public class MyFactoryBean implements FactoryBean {Overridepublic Object getObject() throws Exception {User user new User ();return user ;}Overridepublic Class? getObjectType() {return User.class;} }通过上面这段代码我们自己创造了一个User对象并且它将成为Bean。 但是通过这种方式创造出来的User的Bean只会经过初始化后其他Spring的生命周期步骤是不会经过的比如依赖注入。 通过Bean也可以自己生成一个对象作为Bean但是Bean定义的Bean是会经过完整的Bean生命周期的。 8、ExcludeFilter和IncludeFilter 这两个Filter是Spring扫描过程中用来过滤的。ExcludeFilter表示排除过滤器IncludeFilter表示包含过滤器。 比如以下配置表示扫描com.wang这个包下面的所有类但是排除UserService类也就是就算它上面有Component注解也不会成为Bean。 ComponentScan(value com.wang,excludeFilters {ComponentScan.Filter(type FilterType.ASSIGNABLE_TYPE, classes UserService.class)}.) public class AppConfig { }再比如以下配置就算UserService类上没有Component注解它也会被扫描成为一个Bean。 ComponentScan(value com.wang,includeFilters {ComponentScan.Filter(type FilterType.ASSIGNABLE_TYPE, classes UserService.class)}) public class AppConfig { }FilterType分为 ANNOTATION表示是否包含某个注解ASSIGNABLE_TYPE表示是否是某个类ASPECTJ表示否是符合某个Aspectj表达式REGEX表示是否符合某个正则表达式CUSTOM自定义 9、MetadataReader、ClassMetadata、AnnotationMetadata 在Spring中需要去解析类的信息比如类名、类中的方法、类上的注解这些都可以称之为类的元数据所以Spring中对类的元数据做了抽象并提供了一些工具类。 MetadataReader表示类的元数据读取器默认实现类为SimpleMetadataReader。比如 public class Test {public static void main(String[] args) throws IOException {SimpleMetadataReaderFactory simpleMetadataReaderFactory new SimpleMetadataReaderFactory();// 构造一个MetadataReaderMetadataReader metadataReader simpleMetadataReaderFactory.getMetadataReader(com.wang.service.UserService);// 得到一个ClassMetadata并获取了类名ClassMetadata classMetadata metadataReader.getClassMetadata();System.out.println(classMetadata.getClassName());// 获取一个AnnotationMetadata并获取类上的注解信息AnnotationMetadata annotationMetadata metadataReader.getAnnotationMetadata();for (String annotationType : annotationMetadata.getAnnotationTypes()) {System.out.println(annotationType);}} }需要注意的是SimpleMetadataReader去解析类时使用的ASM技术。
http://www.yutouwan.com/news/23269/

相关文章:

  • 单页网站建设一般收费淘宝客云建站网址
  • 建设优化网站青岛网站制作开发
  • 南昌做网站优化的公司wordpress添加文章时可以上传视频
  • 怎么做阿里国际网站的数据分析博客网站设计方案
  • 做招聘网站要多久做网站需要多少费用
  • 邯郸做网站推广找谁哪个是网络营销导向网站建设的基础
  • 自建网站如何被百度收录杭州高端网站设计
  • 网站做报表wordpress做英文站
  • 淘宝网站怎样建小影wordpress
  • 模具 东莞网站建设做垂直类网站
  • 网站安全狗卸载卸载不掉南昌房信网官网
  • 陕西网站建设优化技术工程平台公司是什么意思
  • nike网站建设分析建筑网官网平台
  • 青岛网站制作网络推广网站首页大图
  • 网站域名授权个人网页制作教程
  • 网站开发nodejs深圳关键词自动排名
  • 手机网站开发如何设置触摸功能巩义网站推广优化
  • 网站动态域名威海网站制作团队
  • 嘉兴市南湖区建设街道网站郑州网络推广平台有哪些
  • 内网如何做网站访问网站建设预算申请
  • 校园电商平台网站建设vs做网站示例
  • wordpress商城微信支付宝陕西seo排名
  • 深圳坪山网站制作公司宁波网络推广有哪些
  • wordpress 加速网站其它方面seo情况
  • idea网站开发个性wordpress主题
  • 济南网站优化分析用python做网站怎么赚钱
  • 宝塔批量建站工具编程课网课哪个好
  • 网站建设营销排名方案怎么做像滴滴一样网站
  • 网站开发多少费用英文外贸网站设计
  • 企业宣传网站建设前端静态网站模板