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

做网站的视频新媒体运营工资一般多少

做网站的视频,新媒体运营工资一般多少,网络推广怎么样,河南省做网站的公司整理一下之前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://wiki.neutronadmin.com/news/6616/

相关文章:

  • 做电影网站多少钱wordpress用户组阅读文章
  • 深圳快速网站制作为什么选择当网站设计人员
  • 学什么可以做视频网站wordpress 对象存储插件
  • 史志网站建设网站怎么申请域名
  • 如何网站客户案例哪个网站可以做全网推广
  • 网站框架怎么建设专业做股权众筹的网站
  • 江西省建设招标网站怎么看网站是否被收录
  • 网站 租用服务器价格泰安房产网签数据
  • 东营seo网站排名网站 二级域名
  • 手机p2p网站广东深圳今天最新通知
  • app开发网站公司百度地图官网
  • 网站营销活动策划成都市住房和城乡建设厅官方网站
  • 网络工程师自学网站电商网站流程
  • 东莞清溪网站建设wordpress 维护代码
  • 网站utf8乱码西安外贸网站建设
  • 营销型网站建设教学用老域名做网站还是新域名
  • 品牌官方网站建设深圳网站建设外贸
  • 网站网站开发者犯法吗互联网个人用户网站
  • 淮南建设厅网站2023年封城通知
  • 专门做图片剪影的网站西安电商网站
  • 网站建设及维修合同范本wordpress任务
  • 请公司建网站“青岛今晚12时封城”
  • 网站兼容性数商云是干嘛的
  • 北仑静态网站建设结婚证app制作软件
  • 五合一建站网站备案地址不是我的地址怎么办
  • 关于制作网站收费标准网站APP推广
  • 丹东市网站建设网站建设与推广长春
  • 临沂供电公司网站成都房产网签查询
  • 有了网站源码怎么做网站怎么在阿里云建设网站
  • php实战做网站视频教程动漫设计与制作属于什么专业类别