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

孝感哪家做网站的公司好展示型网站建设价格

孝感哪家做网站的公司好,展示型网站建设价格,什么网站是专门做艺术字的,wordpress 长图文整理一下之前Spring的学习笔记#xff0c;大致有一下几种Spring注入到容器中的方法: 1#xff09;、配置在xml的方式。 2#xff09;、开启包扫描ComponentScan使用Component#xff0c;Service#xff0c;Controller#xff0c;Repository#xff08;其实后三个都继承…整理一下之前Spring的学习笔记大致有一下几种Spring注入到容器中的方法: 1、配置在xml的方式。 2、开启包扫描ComponentScan使用ComponentServiceControllerRepository其实后三个都继承Component注册组件到spring容器里面 3、使用Bean注入 4、使用Import快速导入组件 Configuration ​ 声明为配置类与bean.xml一致 XML方式注入 Sping最开始的用法先定义好xml文件使用ClassPathXmlApplicationContext加载指定xml文件就创建好容器了当Bean过多的时候使用xml配置就显得比较繁琐所以在现在的大环境下这种注入方法已经过时了就简单的提一下 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdbean iduser classcom.test.SpringCoreTest.test00.bean.Userproperty namename valueTom/propertyproperty nameage value12/property/bean/beans ComponentScan 需和Configuration注解一起使用与xml当中的context:component-scan base-package /一致表示扫描指定包下的类将带有Component注解的类全部扫描到容器当中 有几个常用的参数需了解一下 basePackages 扫描指定包下的类并且注入到spring容器里面 useDefaultFilters是否使用默认过滤器和excludeFilters、includeFilters配置一起使用 includeFilters包含过滤器为过滤的内容当useDefaultFilters为false的时候才生效 excludeFilters去除指定过滤器过滤的内容当useDefaultFilters为true的时候才能生效 过滤器为ComponentScan的内部注解类Filter classes指定类与type搭配使用 ​       type过滤器的类型org.springframework.context.annotation.FilterType.class枚举类中(共有五种仅记录三种经常使用的类型) ​ ANNOTATION指定过滤哪些注解例如Controller ​ ASSIGNABLE_TYPE指定过滤哪些类 ​ CUSTOM自定义过滤器可继承TypeFilter接口实现match方法 示例 public class SpringTest01Filter implements TypeFilter {/*** param metadataReader 读取当前扫描类的信息* param metadataReaderFactory 可以获取其他任何类的信息*/public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory)throws IOException {//获取当前注解信息ClassMetadata classMetadata metadataReader.getClassMetadata();//获取当前扫描类的信息String className classMetadata.getClassName();System.out.println(className);if(className.contains(er))//如果当前扫描类信息包含er的时候注入到Spring容器return true;elsereturn false;}}//配置类 ComponentScan(basePackagescom.test.SpringCoreTest.test01.config,includeFilters {Filter(type FilterType.CUSTOM,classes {SpringTest01Filter.class}) },useDefaultFilterstrue) Configuration 这里会有个问题为什么在使用过滤器的时候对useDefaultFilters有要求源码中解析 ClassPathBeanDefinitionScanner scanner new ClassPathBeanDefinitionScanner(this.registry,componentScan.getBoolean(useDefaultFilters), this.environment, this.resourceLoader); //该段代码中获取了useDefaultFilters的值 //进入该类中 public ClassPathBeanDefinitionScanner(BeanDefinitionRegistry registry, boolean useDefaultFilters,Environment environment, Nullable ResourceLoader resourceLoader) {Assert.notNull(registry, BeanDefinitionRegistry must not be null);this.registry registry;if (useDefaultFilters) {registerDefaultFilters();//useDefaultFilters为true时该方法开启了注册默认过滤器的方法}setEnvironment(environment);setResourceLoader(resourceLoader);}//进入到registerDefaultFilters方法里面 protected void registerDefaultFilters() {//执行了当前方法重置了includeFilters包含的过滤器导致带有Component注解的类都会加载到容器里面所以在useDefaultFilters为true的情况下includeFilters失效的原因在此this.includeFilters.add(new AnnotationTypeFilter(Component.class));ClassLoader cl ClassPathScanningCandidateComponentProvider.class.getClassLoader();try {this.includeFilters.add(new AnnotationTypeFilter(((Class? extends Annotation) ClassUtils.forName(javax.annotation.ManagedBean, cl)), false));logger.trace(JSR-250 javax.annotation.ManagedBean found and supported for component scanning);}catch (ClassNotFoundException ex) {// JSR-250 1.1 API (as included in Java EE 6) not available - simply skip.}try {this.includeFilters.add(new AnnotationTypeFilter(((Class? extends Annotation) ClassUtils.forName(javax.inject.Named, cl)), false));logger.trace(JSR-330 javax.inject.Named annotation found and supported for component scanning);}catch (ClassNotFoundException ex) {// JSR-330 API not available - simply skip.}} Bean 需和Configuration一起使用容器中的key为方法名bean为返回的对象默认为单例。示例 Configuration public class SpringConfig01 {Beanpublic User user() {return new User();}//.... } 以下三个注解可以和Bean一起使用 Scope ​ 指定容器组件类型 ​ prototype多例模式当容器创建时并不会创建对象而是在调用时创建一个新的对象 ​ singleton单例模式容器创建时对象也会创建 ​ request主要是针对web应用每提交一次请求都回去创建一个对象 ​ session针对web应用创建一个session创建一个对象 Lazy ​ 懒加载只有当前组件第一次被调用的时候才会去创建对象针对单例模式 Conditional ​ 可指定在某些条件下才能将当前组件注入到容器 ​ 参数为继承org.springframework.context.annotation.Condition.class的实现类 /*** param context 可以使用ApplicationContext(上下文)* param metadata 可以获取到注解信息*/public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {//获取到BeanFactoryConfigurableListableBeanFactory beanFactory context.getBeanFactory();//可获取环境参数如jvm环境spring环境等等Environment environment context.getEnvironment();String osName environment.getProperty(os.name);if(osName.contains(Windows))//如果当前环境为window则创建当前组件并加载到容器中return true;return false;} Import ​ 快速导入组件,共三种形式这个算是一个比较主要的注入方式吧在Spring中需要做一些扩展的时候都会需要用到这个比如mybatis-spring融合开启AOP功能等使用的就是这里的第三种方式 1、Import(value { Dog.class,Cat.class })//快速导入到容器中以类的全路径作为bean的ID 2、Import(value { SpringTest03ImportSelector.class })//实现ImportSelector接口 public class SpringTest03ImportSelector implements ImportSelector {public String[] selectImports(AnnotationMetadata importingClassMetadata) {//返回为类的全类名return new String [] {};//注意一下这边必须返回一个空的数组不然启动报错空指针异常}}//在源码org.springframework.context.annotation.ConfigurationClassParser.class类中 private CollectionSourceClass asSourceClasses(String... classNames) throws IOException {ListSourceClass annotatedClasses new ArrayList(classNames.length);//这里的classNames为之前ImportSelector返回的数组为null的话即报错for (String className : classNames) {annotatedClasses.add(asSourceClass(className));}return annotatedClasses;} 3、Import(value { SpringTest03ImportBeanDefinitionRegistrar.class })//实现ImportBeanDefinitionRegistrar接口所有的bean注册都会使用到该接口进行注册 /*** param importingClassMetadata 当前类的注解信息 * param registry BeanDefinition的注册类* 可做条件修改*/ public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {boolean b1 registry.containsBeanDefinition(user);if(b1) {registry.registerBeanDefinition(pig, new RootBeanDefinition(Pig.class));}
http://www.pierceye.com/news/299804/

相关文章:

  • 北京4网站建设WordPress不会php
  • wordpress百度搜索对接免费seo提交工具
  • 网站结构优化包括哪些WordPress多城市
  • 北京三屏网站制作wordpress 分词插件
  • 潍坊哪里可以做网站建设网站一定需要云服务器么
  • 高新网站建设多少钱重庆模板网站建设费用
  • 陕西的网站建设公司哪家好网站建设与维护典型案例
  • 遵义网站开发的公司有哪些网站建设vps
  • 百度网站与推广徐州网站建设网络推广
  • 8818网站建设网站建设平台一般多少钱
  • 万网怎样做网站调试百度在线扫一扫
  • 建设网站平台哪个好如何提高商城网站权重
  • 深圳手机网站设计抖音开放平台
  • 平山做网站优化网页版梦幻西游五色石攻略
  • 字体图标制作网站长沙网站排名公司哪家好
  • 百度和阿里哪个厉害做网站千万不要学数字媒体技术
  • 可信赖的商城网站建设长春疾控最新消息
  • 做阿里网站开发公司名字
  • 企业网站建设内容杭州有几个区
  • 松江建设管理中心网站网站sem托管
  • 做网站前期框架图射击官网
  • 吉首网站建设吉首网站建设网站app制作费用单
  • 网站最好的优化是什么经过学习网站开发后的心得体会
  • 如何把资料上传到网站公司网站建设视频教程
  • 济南建设网站平台泰安高端网站设计建设
  • 武安网站建设价格开发区网站建设
  • 安徽省住房城乡建设厅官方网站2022年最新热点素材
  • 济宁网站建设方面舟山网站设计公司
  • 局域网网站建设多少钱wordpress企业站主题
  • asp做网站用什么写脚本营销网站开发系统