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

专做农产品的网站有哪些做的网站里面显示乱码怎么解决方法

专做农产品的网站有哪些,做的网站里面显示乱码怎么解决方法,创世通网站建设,百度推广代运营【0】README0#xff09;本文部分文字描述转自#xff1a;“Spring In Action#xff08;中/英文版#xff09;”#xff0c;旨在review spring(2)装配Bean 的相关知识#xff1b;1#xff09;在spring中#xff0c;对象无需自己查找或创建与其所关联的其他对象。相反…【0】README0本文部分文字描述转自“Spring In Action中/英文版”旨在review  spring(2)装配Bean 的相关知识1在spring中对象无需自己查找或创建与其所关联的其他对象。相反容器负责把需要相互协作的对象引用赋予各个对象2装配创建应用对象之间协作关系的行为通常称为装配这也是依赖注入DI的本质干货——装配是依赖注入的本质3可以预热一下在Spring中装配bean有多种方式配置Spring容器最常见的三种方法【1】Spring配置的可选方案1Spring容器作用负责创建应用程序中的bean 并通过DI 来协调对这些对象之间的关系2当描述bean 如何进行装配时Spring提供了3种主要的装配机制mechanismm1在XML中进行显式配置m2在java中进行显式配置m3隐式的bean 发现机制和自动装配 AttentionA1Spring的配置风格是可以互相搭配的所以你可以选择使用XML 装配一些bean使用Spring基于java 的配置JavaConfig来装配另一些bean而剩下的bena可以让Spring自动发现A2而原书作者建议尽可能地使用自动配置的机制而必须要显示配置bean的时候原书作者推荐类型安全并且比XML 更加强大的 JavaConfigA3最后只有当你想要使用便利的xml 命名空间并且在 JavaConfig 中没有同样的实现时才应该使用 XML 【2】自动化装配BeanSpring最强大的装配技术1introSpring从两个角度来实现自动化装配1.1组件扫描Spring会自动发现应用上下文中所创建的bean 1.2自动装配Spring自动满足bena之间的依赖 【2.1】创建可被发现的Bean1以CD作为DI 如何运行提供的荔枝。如果你不将CD 插入注入到CD 播放器中那么CD 播放器其实是没有太大用处的2创建Disc唱片接口和具体的唱片对以上代码的分析AnalysisA1component注解表明该类会作为组件类并告知spring要为这个类创建bean.干货——Component注解的作用 A2组件扫描默认是不启用的。我们需要显式配置一下spring 从而命令它去寻找带有Component注解的类并为其创建bean 3利用 ComponentScan 注解启用了组件扫描package com.spring.chapter2;import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration;Configuration ComponentScan public class CDPlayerConfig { }对以上代码的分析AnalysisA1类CDPlayerConfig 通过 java 代码定义了Spring的装配规则 A2类CDPlayerConfig 并没有显式地声明任何bean 只不过它使用了 ComponentScan 注解这个注解能够在Spring中启用组件扫描干货——ComponentScan注解的作用 A3ComponentScan注解默认会扫描配置类相同的包。因为CDPlayerConfig 位于 com.spring.chapter2那所以Spring将会扫描这个包及其所有子包查找带有 Component注解的类 Attention也可以使用XML来启用组件扫描context:component-scan base-packagecom.spring.chapter24接下来创建测试用例JUnit测试对以上代码的分析AnalysisA1该测试用例使用了 Spring 的 SpringJUnit4ClassRunner以便在测试开始的时候自动创建 Spring的应用上下文 A2注解ContextConfiguration会告诉它需要在 CDPlayerConfig中加载配置因为CDPlayerConfig 类中包含了ComponentScan 所以最终的应用上下文应该包含JayChou bean干货——ContextConfiguration注解的作用 【2.2】为组件扫描的bean命名自定义bean 名称1默认的名称是将类的第一个字母改为小写就是bean 名称2自定义bean名称将期望的id 作为值传递给 Component注解如 Component(jay chou) public class JayChou implements Disc{3还有一种为bean 命名的方式这种方式不使用 Component注解而使用java依赖注入规范中提供的 Named注解来设置bean idNamed(jay chou) public class JayChou implements Disc{ Attention 注解 Named 注解 Component在大多数case下他们是可以互换的但更喜欢用 Component 干货——Named注解的作用 【2.3】设置组件扫描的基础包 1problemsolution 1.1problemComponentScan注解会按照配置类如CDPlayerConfig 所在的包作为基础包进行扫描但是如果想扫描不同的包该怎么做 1.2solution为了指定不同的基础包需要做的就是在 ComponentScan 的value属性中指明包的名称 Configuration ComponentScan(com.spring.chapter1) public class CDPlayerConfig { } 1.2.1如果想更加清晰地表明想要设置的基础包通过basePackage属性进行配置 Configuration ComponentScan(basePackagecom.spring.chapter1) public class CDPlayerConfig { } 1.2.2当然也可以设置多个基础包 Configuration ComponentScan(basePackage{com.spring.chapter1, com.spring.chapter2}) public class CDPlayerConfig { } 2problemsolution 2.1problem在上面的荔枝中所设置的 基础包是String类型的这种方法是类型不安全的 2.2solutionComponentScan注解还提供了另外一种方法那就是将其指定为包中所包含的类或接口 Configuration ComponentScan(basePackageClasses{CDPlayer.class, DVDPlayer.class}) public class CDPlayerConfig { } AttentionbasePackage 被替换为了 basePackageClasses而basePackageClasses 属性设置的数组包含了类。这些类所在的包将作为 组件扫描的基础包这就会扫描多个包了 3我们需要一种方法能够将组件扫描得到的bean 和 他们的依赖装配在一起自动装配就可以完成这项任务 干货——引入自动装配的概念 【2.4】通过为bean 添加注解实现自动装配 1自动装配定义自动装配就是让Spring自动满足bean依赖的一种方法在满足依赖的过程中会在Spring 应用上下文中寻找匹配某个bean需求的其他bean干货——自动装配定义 2Autowired注解 为了声明要进行自动装配我们可以借助Spring 的 Autowired注解 3Autowired注解的意义它在构造器上添加了Autowired注解这表明当Spring创建了 CDPlayer bean的时候会通过这个构造器来进行实例化并且会传入一个Disc类型的bean干货——Autowired注解的作用 public class CDPlayer implements MediaPlayer{private Disc disc;Autowiredpublic CDPlayer(Disc disc) {this.disc disc;}public void play() {disc.play();} } 对以上代码的分析Analysis A0上述第4行代码的 Autowired该注解表明 当Spring创建CDPlayer bean 的时候会通过这个构造器来进行实例化并且会传入一个可设置给 Disc 类型的bean A1注解Autowired 不仅能够用在构造器上还能用在属性的setter方法上 Autowiredpublic void setDisc(Disc disc) {this.disc disc;} A2实际上 注解 Autowired 可以用在类的任何方法上 4如果没有匹配的bean那么在应用上下文创建的时候Spring会抛出一个异常4.1为了避免抛出异常可以将required设置为 false将required 属性设置为false时Spring 会尝试执行自动装配但是如果没有匹配的bean的话Spring将会让这个bean 处于未装配的状态  Autowired(requiredfalse)public CDPlayer(Disc disc) {this.disc disc;} 4.2如果有多个bean满足依赖关系的话Spring将会抛出异常表明没有明确指定要选择哪个bean 进行自动装配 5注解Inject该注解来源于java 依赖注入规范该规范同时还为我们定义了 Named 注解在自动装配中Spring同时支持 Inject  和 Autowired在大多数cases下他们是可以互换的 干货——Inject注解的作用 【2.5】验证自动装配 【3】通过java 代码装配bean 1有时候自动化配置方案行不通因此需要明确配置Spring如你想要将第三方库中的组件装配到你的应用中在这种case下是没有办法在它的类上添加 Component 和 Autowired 注解的因此就不能使用自动化装配的方案了 2所以就要采用显式装配bean方式有两种方案可以选择scheme java 和xml原书作者建议在进行显式配置时JavaConfig 是更好的方案因为它更为强大类型安全并且对重构友好 【3.1】创建配置类 1创建JavaConfig类的关键在于为其添加 Configuration注解Configuration注解表明这个类是一个配置类该类应该包含在Spring应用上下文中如何创建bean的细节 不能再干货——Configuration注解的作用 2由于是显式配置所以要remove掉 ComponentScan注解 【3.2】声明简单的bean 1如何声明要在 JavaConfig中声明bean我们需要编写一个方法这个方法会创建所需类型的实例然后给这个方法添加 Bean注解 Beanpublic Disc jaychou() {return new JayChou();}对以上代码的分析AnalysisBean注解会告诉Spring 这个方法将会返回一个对象该对象要注册为 Spring应用上下文中的bean方法体中包含了最终产生bean实例的逻辑干货——Bean注解的作用 2默认case下 bean 的ID 将与带有Bean注解的方法名是一样的本例中其IDjaychou 2.1可以自定义bean的ID Bean(nameour jaychou)public Disc jaychou() {return new JayChou();} 【3.3】借助JavaConfig实现注入 1problemsolution 1.1problem前面声明的 JayChouDisc自身没有其他依赖现在要声明CDPlayer bean它依赖与 JayChou那么在 JavaConfig中要如何将它们装配在一起呢 1.2solution在 JavaConfig中装配bean的最简单方式就是引用创建bean的方法。如下面就是一种声明 CDPlayer的可行方法 // defined in CDPlayer. Bean(nameour jaychou)public Disc jaychou() {return new JayChou();} Beanpublic CDPlayer cdPlayer() {return new CDPlayer(jaychou());} 对以上代码的分析Analysis A1cdPlayer()方法与jaychou()方法有些区别在这里并没有使用默认的构造器构建实例而是调用了需要传入 Disc 对象 的构造器来创建CDPlayer实例 A2看起来 Disc 是通过 jaychou()方法得到的但case并非总是如此因为jaychou()方法上添加了 Bean注解Spring将会拦截所有对它的调用并确保直接返回该方法所创建的bean而不是每次都对其进行调用干货中的干货——也即是对jaychou方法的多次调用都只会返回同一个bean而不是多个bean 看个荔枝 cdPlayer方法返回的CDPlayer的Disc 对象 与 anotherPlayer方法返回的CDPlayer的Disc 对象是同一个 干货——在软件领域中多个播放器player可以使用同一张唱片jaychou Beanpublic CDPlayer cdPlayer() {return new CDPlayer(jaychou());}Beanpublic CDPlayer anotherPlayer() {return new CDPlayer(jaychou());} 对以上代码的分析Analysis  A1默认情况下Spring中的bean 都是单例的我们并没有必要为第2个CDPlayer bena创建相同的 JayChou 唱片 A2总之一句话 Spring会拦截对 jaychou()方法的调用并确保返回的是 Spring所创建的bean也就是Spring本身首次调用jaychou()方法所创建的bean Attention A1需要提醒的是我们在这里使用CDPlayer的构造器实现了 DI 功能但是我们完全可以采用其他风格的DI 配置比如如果想通过Setter 方法注入Disc的话代码像这个样子 Beanpublic CDPlayer cdPlayer(Disc disc) {CDPlayer cdPlayer new CDPlayer(disc);cdPlayer.setDisc(disc);return cdPlayer;} A2带有Bean 注解的方法可以采用任何必要的java 功能来产生bean实例。构造器和Setter 方法只是 Bean方法的两个简单样例 2对bean注解的另外一种理解方式 Bean public CDPlayer cdPlayer(Disc disc) {return new CDPlayer(disc); } 对以上代码的分析Analysis当Spring 调用cdPlayer()创建CDPlayer bean的时候它会自动装配一个Disc 到配置方法中。通过这种方式引用其他的bean 通常是 最佳的选择因为它不会要求将 Disc 声明到同一个配置类中在这里甚至没有要求 Disc 必须要在 JavaConfig中声明实际上它可以通过组件扫描功能自动发现或通过XML 来进行配置 【4】通过XML 装配bean 【4.1】创建XML 配置规范 1在使用JavaConfig的时候要创建一个带有 Configuration注解的类而在XML配置中这意味着要创建一个XML 文件并且要以beans元素为根beans是spring-benas模式中的一个元素 2最为简单的Spring XML 配置如下图所示 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context !-- configuration details go here -- /beans 对以上代码的分析Analysis使用XML时需要在配置文件的顶部声明多个 XML 模式XSD文件这些文件定义了配置Spring的XML 元素 Supplement借助Spring Tool Suite 创建XML 配置文件创建和管理Spring XML 配置文件的一种简便方式是使用Spring Tool Suit原书作者又一次打了ad觉得有用的可以down 下来玩玩 【4.2】声明一个简单的bean 1使用spring-beans模式中的另外一个元素beanbean元素类似于JavaConfig 中的 Bean注解 2我们按照如下方式声明 Disc bean这里声明了一个很简单的bean创建这个bean的类通过class 属性来指定并且要使用全限定的类名 bean classcom.spring.chapter1.JayChou / 对以上代码的 分析Analysis A1默认的bean id 根据全限定类名来进行命名在本例中default id com.spring.chapter1.JayChou#0#0是一个计数的形式用来区分相同类型的其他bean A2自定义bean id bean idmydiy classcom.spring.chapter1.JayChou / Attention A1减少繁琐 为了减少xml 中繁琐的配置只对那些需要按名字引用的bean 进行明确的命名比如你需要将对它引用注入到另一个bean中干货——引入减少繁琐 A2当Spring发现这个 bean元素时它将会调用 其默认构造器来创建bean在XML配置中bean的创建更加被动 A3在这个简单的bean声明中我们把bean的类型以字符串的形式设置在了 class属性中谁知道它是对的还是不对的。。为了检查该字符串是否是实际的类型借助Spring Tool Suit检查XML的合法性感觉这个原书作者在打ad 一样hh 【4.3】借助构造器注入初始化bean 1在XMl中声明DI时具体到构造器注入有两种配置方案scheme s1constructor-arg元素 s2使用spring3.0 所引入的 c-命名空间 2构造器注入bean引用 scheme1通过XML配置 来实现 “CDPlayer 类需要依赖引用 Disc的实现类” 的需求 bean idcdPlayer classcom.spring.chapter2.CDPlayerconstructor-arg refjaychou / /bean bean idjaychou classcom.spring.chapter2.JayChou /bean scheme2通过c-命名空间 来实现 “CDPlayer 类需要依赖引用 Disc的实现类” 的需求 step1要使用spring 的c-命名空间的话必须要在XML 的顶部声明其模式如下所示 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:chttp://www.springframework.org/schema/c xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ... /beans step2使用c-命名空间来声明构造器参数 bean idcdPlayer classcom.spring.chapter2.CDPlayer c:cd-refjaychou / Attention下图描述了这个属性名是如何组合而成的 problemsolution problem solution我们使用参数在整个参数列表中的位置信息 bean idcdPlayer classcom.spring.chapter2.CDPlayer c:_0-refjaychou / 对以上代码的分析Analysis我们将参数的名称替换为 “0”因为数字不能开头所以加了下划线作为前缀使用索引_0,_1,...来识别构造器参数感觉比使用名字更好一些 3将字面量注入构造器中即构造器参数是String类型而不是具体的java类型 3.1通过XML来装配 bean idleehom classcom.spring.chapter2.Leehomconstructor-arg valueSgt. Peppers Lonely Hearts Club Band /constructor-arg valueThe Beatles / /bean3.2通过c-命名空间来装配 bean idleehomclasscom.spring.chapter2.Leehomc:_titleSgt. Peppers Lonely Hearts Club Bandc:_artistThe Beatles / 4装配集合这种case下constructor-arg能够实现而c-命名空间是不能够实现的 solutions s1最简单的方法是将列表设置为null s2更好的解决方法是提供给一个磁道名称的列表使用 list元素将其声明为一个列表 s3当然了我们也可以使用ref元素替代 value实现bean引用列表的装配 看个荔枝通过XML配置 装配集合?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:aophttp://www.springframework.org/schema/aopxmlns:chttp://www.springframework.org/schema/cxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdbean idleehom classcom.spring.chapter2.Leehomc:_0十八般武艺 c:_1Leehom Wangconstructor-arglistvalueSgt. Peppers Lonely Hearts Club Band/valuevalueWith a Little Help from My Friends/valuevalueLucy in the Sky with Diamonds/valuevalueGetting Better/valuevalueFixing a Hole/value!-- ...other tracks omitted for brevity... --/list/constructor-arg/bean /beans public class Leehom implements Disc {private String title;private String artist;private ListString tracks;public Leehom() {}public Leehom(String title, String artist, ListString tracks) {this.title title;this.artist artist;this.tracks tracks;}public void setTitle(String title) {this.title title;}public void setArtist(String artist) {this.artist artist;}public void setTracks(ListString tracks) {this.tracks tracks;}public void play() {System.out.println(Playing title by artist);for (String string : tracks) {System.out.println(-track: string);}}Overridepublic String getName() {return artist;} } Attention我们也可以用同样的方式使用set元素list和 set的元素区别在于当Spring创建要装配的集合时所创建的是 java.util.Set 还是 java.util.List如果是Set的话那么重复的值都会被忽略掉存放顺序也不会得以保证保证不过无论在哪种case下都可以用 set 或 List 来装配 List or Set 设置 数组【4.4】设置属性如何使用Spring XML实现属性注入1该选择构造器注入还是属性注入呢 作为一个通用的规则 原书作者倾向于对强依赖使用构造器注入而对可选性的依赖使用属性注入2Spring为constructor-arg  元素提供了c-命名空间作为替代方案同样Spring提供了更加简洁的p-命名空间作为property元素的替代方案2.1为了启用p-命名空间必须要在 XML 文件中与其他的命名空间一起对其进行声明 2.2利用p-命名空间按照以下方式装配disc属性 3将字面量注入到属性中3.1新的Leehom 类如下所示 3.2通过property元素的value属性注入 3.3通过spring的p-命名空间来实现注入 对以上代码的分析AnalysisA1与c-命名空间一样装配bean 引用与装配字面量的唯一区别是 是否带有“-ref”后缀如果没有该后缀的话所装配的就是字面量如String类型干货——装配bean 引用与装配字面量的唯一区别是 是否带有“-ref”后缀如果没有该后缀的话所装配的就是字面量 A2不能通过p-命名空间来装配集合但可以使用 Spring util-命名空间中的一些功能来简化 Leehom bean step1需要在XML 中声明util-命名空间及其模式 step2util-命名空间所提供的功能之一是 util:list元素它会创建一个  列表的bean step3通过util:list元素创建了List bean现在我们将磁道列表 beantracklist 注入到 Leehom 的tracks 属性中 Attentionutil:list元素只是 util-命名空间中的多个元素之一。下表列出了 util-命名空间提供的所有元素【5】导入和混合配置如何将自动化配置JavaConfig以及XML 配置混合并匹配在一起【5.1】在JavaConfig 中引用XML 配置Supplement即是CDPlayer  bean通过 JavaConfig 来创建装配而Disc的实现类 JayChou bean 通过 XML配置来创建装配【5.2】在XML配置中引用 JavaConfig
http://www.zqtcl.cn/news/213552/

相关文章:

  • 色91Av做爰网站获胜者网站建设
  • 企业做网站要多少钱简单网页设计模板网站
  • 住宅城乡建设部门户网站seo主管的seo优化方案
  • 商洛做网站电话北京做网站比较大的公司
  • 某俄文网站电脑做网站服务器
  • 广州网站建设开发团队江苏省建设招标网站
  • 南昌建设工程质量监督网站wordpress菜单登录
  • 网站设计贵不贵网站seo设置是什么
  • 不属于企业网站建设基本标准的是南通网站建设知识
  • 玉树州wap网站建设公司做试玩网站
  • 商城网站怎么建保定网络营销网站建设
  • 检索类的网站建设公司的网站建设规划书
  • 百度做网站需要交钱吗保定网站建设平台分析
  • 张家界建设局网站电话优化关键词排名公司
  • 宁夏网站建设一条龙网站建设中的图片及视频要求
  • 某些网站dns解析失败湛江制作企业网站
  • 网站开发用什么代码长沙哪家公司做网站
  • 做视频找素材的网站有哪些wordpress 合法评论
  • php网站开发程序填空题高水平网站运营托管
  • 揭东建设局网站wordpress建站后发布
  • 济南哪里有建网站制作视频的手机软件
  • 建设教育网站的国内外研究现状沧州市宇通网站建设公司
  • 大型网站开发框架有哪些厦门外贸网页设计服务
  • 开网站空间流量怎么选择公司注册咨询电话
  • 邢台网站建设基本流程网站制作公司教你怎么制作网站
  • 苏州网站建设方案外包视频网站制作教程视频
  • 呼伦贝尔市规划建设局网站wordpress 主题切换
  • 建设网站的要求吗网站怎么建立
  • 网站结构有哪些建设局平台
  • 高端网站建设公司服务好吗有哪些制作网站的公司