概述 使用Java类提供Bean定义信息 实例 分析 使用基于Java类的配置信息启动Spring容器 直接通过Configuration启动Spring容器 通过AnnotationConfigApplicationContext...配置文件引用Configuration配置 通过Configuration配置类引用XML配置信息 概述 JavaConfig是Spring的一个子项目,它旨在通过Java类的方式提供Bean的定义信息...Java类的配置方式和基于XML或者基于注解的配置方式相比,前者通过代码编程的方式可以更加灵活的实现Bean的实例化及Bean之间的装配,后两者都是通过配置声明的方式,在灵活性上要稍逊一些,但在配置上要更简单一些...---- 使用基于Java类的配置信息启动Spring容器 1.直接通过@Configuration启动Spring容器 Spring提供了AnnotationConfigApplicationContext...类,它能够直接通过标注@Configuration的Java类启动Spring容器。
转载自 http://blog.csdn.net/vvhesj/article/details/47661001 Spring中为了减少xml中配置,可以声明一个配置类(例如SpringConfig)...来对bean进行配置。...一、首先,需要xml中进行少量的配置来启动Java配置: [java] view plain copy "1.0" encoding="UTF-8"?...-3.2.xsd"> package="SpringStudy.Model"> 二、定义一个配置类 用@Configuration注解该类,等价 与XML中配置beans;用@Bean...");// 读取bean.xml中的内容 Counter c = ctx.getBean("counter", Counter.class);// 创建bean的引用对象 五、运行结果 12.0
大家好,又见面了,我是你们的朋友全栈君。 Random类主要用来生成随机数,本文详解介绍了Random类的用法,希望能帮到大家。...Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机。...2、Random类中的常用方法 Random类中的方法比较简单,每个方法的功能也很容易理解。需要说明的是,Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率是均等的。...3、Random类使用示例 使用Random类,一般是生成指定区间的随机数字,下面就一一介绍如何生成对应区间的随机数字。...通过阅读Math类的源代码可以发现,Math类中的random方法就是直接调用Random类中的nextDouble方法实现的。
何时使用代理 假设有一个表示接口的Class对象(有可能只包含一个接口),它的确切类型在编译时无法知道。要想构造一个实现这些接口的类,就需要使用newInstance方法或反射找出这个类的构造器。...但是,不能实例化一个接口,需要在程序处于运行状态时定义一个新类。 代理类可以在运行时创建全新的类。这样的代理类能够实现指定的接口。...代理类是在运行过程中创建的,创建完毕后和常规类相同,虚拟机同等对待。...所有的代理类都扩展于Proxy类。一个代理类只有一个实例域---调用处理器,它定义在Proxy的超类中。 没有定义代理类的名字,Sun虚拟机中的Proxy类将生成一个以字符串$Proxy开头的类名。...对于特定的类加载器和预设的一组接口来说,只能有一个代理类。也就是说,如果使用同一个类加载器和接口数组调用两次newProxyInstance方法的话,只能得到同一个类的两个对象。
通过本文,你可以了解到: 1 Spring xml规范 2 通过配置文件实现面向切面编程 3 对比与传统AOP编程 Spring的xml文件 Spring的xml一般起名叫做bean.xml...下面的是Spring的配置标签,beans里面几个重要的属性: xmlns: 是默认的xml文档解析格式,即spring的beans。...基于配置的AOP编程过程 首先,如果要在工程中使用AOP需要几个jar包: 1 Aop的核心包,即org.springframework.aop-xxx.jar 2 Spring的联盟包:aopalliance...; } 表演者实现类:Instrumentalist.java package com.spring.test.setter; import com.spring.test.action1.PerformanceException...而基于配置的AOP使用就要简单的多,只需要一个切面的程序,然后通过配置文件就可以完全解耦的融入到切点中。
一、Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。...它是以前的StringTokenizer和Matcher类之间的某种结合。由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分。...借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器。 二、Scanner类用法 Scanner是SDK1.5新增的一个类,可使用该类创建一个对象。 ...下面是一些API函数的用法: delimiter() :返回此 Scanner 当前正在用于匹配分隔符的 Pattern。 ...三、Scanner类实例 (1) import java.util.*; public class Example { public static void main(String args[]) {
1.String String类很常用,很重要。 String不像int或float, 它是参考类型。...final类型, 不能被继承,String is a Reference Type,Defined in java.lang package 常用方法: length() String greeting...don’t use ==)(测试是否相等) String s = “Hello”; s.equals(greeting); “Hello”.equalsIgnoreCase(“hello”);(忽略大小写的测试相等...之所以采用这种方法是因为实现固定的,不可变的字符串比实现可变的字符串更简单高效。对于那些想得到改变的字符串的情况,有一个叫做 StringBuffer的String类的友类。...它的对象包含了在创建之后可被改变的字符串。String类和StringBuffer类都在 java.lang包中定义。
1、在web.xml中配置前端控制器,拦截请求,然后配置加载SpringMVC的配置文件(处理器映射器、处理器适配器、视图解析器等) <!...-- contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器、适配器等等) 如果不配置contextConfigLocation,默认加载的是/WEB-INF...--> *.action 2、设置基于注解的处理器映射器和适配器 在Spring3.1之后使用注解映射器...url之间的映射,使用基于注解的处理器映射器不需要在xml中配置url和Handler的映射关系。...5、在spring容器中(xml文件)加载Handler <!
Object类的finalize的用法: 马克-to-win:java当中有个垃圾回收机制,具体说,就是当一些对象被创建使用之后若不再使用的话{比如(i)对象被置成null....(iii)匿名对象刚用完},就会变成垃圾占用空间,JAVA的自动垃圾回收(gc)线程会在适当的时候自动运行,回收内存。...马克-to-win: 再具体一点,对象被创建之后,垃圾回收(gc)系统就开始跟踪这个对象的使用情况。...垃圾回收系统采用有向图的方式:开始时对象一定是可达的,刚把它置为null时,它也就变成了不可达的了,这时就是所谓的垃圾。垃圾回收系统就会回收这些内存空间。...马克-to-win:回收之前,先调用该对象的finalize方法。让其做一些最后的收尾工作。见下例,当p1 = null;时,Java的垃圾回收线程会在适当时间点回收p1对象占据的内存空间。
Bean的作用范围 实例 Bean的生命周期方法 实例 Bean的作用范围 通过注解配置的Bean和通过配置的Bean一样,默认的作用范围都是singleton。...Spring为注解配置提供了一个@Scope注解,可以通过它显示指定Bean的作用范围。...---- Bean的生命周期方法 @Scope注解通过入参指定Bean的作用范围。 在使用进行配置可以通过init-method和destory属性指定Bean的初始化及容器销毁前执行的方法。...实例 我们取消掉Teacher类的 @Scope(“prototype”) 注解 (因为对于singleton的Bean,容器管理,prototype由调用者管理,Spring不管理) ,增加 @PostConstruct...由此可以看出,Spring先调用类的构造函数实例化Bean,然后在执行@Autowired进行自动注入,然后分别执行标注了@PostConstruct的方法,然后在容器关闭时,分别执行了标注@PreDestroy
概述 完整示例 pomxml增加依赖 数据库表数据Oracle 实体类 服务层 ehcache的配置文件 Spring-EhCache配置文件 单元测试 日志输出 日志分析 示例源码 概述 首先请阅读...Spring Cache抽象-基于XML的配置声明(基于ConcurrentMap的配置),本篇博文基于XML的配置,使用了Ehcache缓存管理器。...---- 基于Java类注解的EhCache请阅读 Spring Cache抽象-使用Java类注解的方式整合EhCache ---- 完整示例 pom.xml增加依赖 ...Spring提供的EhCacheCacheManager来生成一个Spring的CacheManager,其接收一个Ehcache的CacheManager,因为真正用来存入缓存数据的还是Ehcache...Ehcache的CacheManager是通过Spring提供的EhCacheManagerFactoryBean来生成的,其可以通过指定ehcache的配置文件位置来生成一个Ehcache的CacheManager
使用Autowired进行自动注入 实例 使用Auotwired的required属性 实例 使用Qualifier指定注入Bean的名称 实例 对类方法进行标注 实例 小结 对集合类进行标注...我们在扫描的基类包下增加个子包 other,包下新增同名Plane类,通过@Component(“otherPlane”)指定Bean的名称。...---- 对类方法进行标注 @Autowired可以对类成员变量以及方法的入参进行标注。 下面在类的方法上使用@Autowired注解。 实例 ?...---- 对集合类进行标注 如果对类中集合类的变量或者方法入参进行@Autowired标注,那么Spring会将容器中类型所有匹配的Bean都自动注入进来。 实例 ?...---- 对标准注解的支持 Spring还支持JSR-250中定义的@Resource和JSR-330中定义的@Inject注解,这两个标准注解和@Autowired注解的功能类似,都能对类变更及方法入参提供自动注入功能
实例 use-default-filters属性 实例 概述 前几篇博文中主要讲述了基于XML的配置。...基于注解的配置方式,在Spring2.0引入,Spring2.5完善,Spring4.0得到了进一步的增强。...我们知道,Spring容器成功启动的三大要件分别是: bean的定义信息 bean的实现类 Spring本身 如果采用XML的配置,则Bean的定义信息和Bean的实现类本身是分离的。...而如果采用基于注解的配置方式,则Bean的定义信息通过Bean实现类上标注的注解实现。...实例 通过配置文件指定Spring只加载 scan目录下的类的注解,测试resource-pattern属性。 ?
概述 示例 项目结构 数据库表数据Oracle 实体类 服务层 Spring配置文件 单元测试 日志输出 日志分析 示例源码 概述 Spring Cache基于注解的配置 如果不想使用注解或者由于其他原因无法获得项目的源码等...,Spring也支持使用XML的方式配置Spring Cache,主要是通过类似于aop:advice的cache:advice来进行的。...---- 实体类 package com.xgj.cache.springCacheXml.domain; import java.io.Serializable; /** * * * @...ClassName: LittleArtisan * * @Description: Java中的缓存和序列化是息息相关的,注意实现Serializable接口 * * @author: Mr.Yang...} /** * * * @Title: getArtisan * * @Description: getArtisan 通过在xml中配置
4-17-1.jpg Scanner类用于获取键盘输入(是一个基于正则表达式的文本扫描器),它可以从文件、字符串、输入流中解析出基本类型值和字符串值。...Scanner类提供了多个构造器,不同的构造器可以接收文件、字符串和输入流作为数据源,用于从文件、字符串和输入流中解析数据。...Scanner类主要提供了两个方法来扫描输入: hasNextXx():是否还有下一个输入项,其中Xxx可以是Int、Long等代表基本数据类型的字符串。...读者福利: 分享免费学习资料 针对于Java程序员,我这边准备免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、MyBatis,Netty,Redis,Kafka,Mysql...希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持! 资料领取方式:加入Java技术交流群963944895,点击加入群聊,私信管理员即可免费领取
Spring对Java配置的支持是由@Configuration注解和@Bean注解来实现的。由@Bean注解的方法将会实例化、配置和初始化一个新对象,这个对象将由Spring的IoC容器来管理。...@Bean声明所起到的作用与 元素类似。被@Configuration所注解的类则表示这个类的主要目的是作为bean定义的资源。...被@Configuration声明的类可以通过在同一个类的内部调用@Bean方法来设置嵌入bean的依赖关系。...如果你要在你的web应用开发中选用上述的配置的方式的话,需要用AnnotationConfigWebApplicationContext 类来读取配置文件,可以用来配置Spring的Servlet监听器...ContrextLoaderListener或者Spring MVC的DispatcherServlet。
大家好,又见面了,我是你们的朋友全栈君。 PropertyDescriptor 类表示 JavaBean 类通过存储器导出一个属性。...> getPropertyType() // 获取属性的java类型对象 Method getReadMethod() // 获得用于读取属性值的方法 Method getWriteMethod() /...用法: import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Method...PropertyDescriptor pd = getPropertyDescriptor(clazz, propertyName);//获取 clazz 类型中的 propertyName 的属性描述器...void main(String[] args) throws Exception { Class clazz = Class.forName("TaskProvidePropsList");//这里的类名是全名
大家好,又见面了,我是你们的朋友全栈君。 一 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。...首先要导入包 import java.util.Scanner; Scanner类的创建对象: Scanner S=new Scanner(System.in); 方法基本格式 hasNextXxx...通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据: 二 Scanner...类中常用的方法next()和nextLine()的区别: next():作为字符串输入的方法,自动屏蔽掉输入的分隔符,如空格、Tab键、回车键,直到遇到有效地字符输入后,则将这些分隔符作为结束标志; nextLine...、Tab键、回车符的字符串,而nextLine可以; 用next()方法代码如下: import java.util.Scanner; public class dd { public static
我们配置DispatcherServlet最典型的是使用web.xml文件。...它可以充分利用编译器,在编译期间检查出配置中的错误,另外,这增强了配置的灵活性和可控性,你可以在启动过程中自定义需要的检查验证条件。...Spring mvc是跟着更底层的接口标准servlet走的,servlet3+以后引入ServletContainerInitializer接口,这为去web.xml,基于代码配置提供了一种途径: public...>> c, ServletContext ctx) throws ServletException; } Spring的SpringServletContainerInitializer 类实现了该接口...: //HandlesTypes注解标识SpringServletContainerInitializer 类启动时需要处理的类,此处专门标识了WebApplicationInitializer,正如前面所展示的
结果示意图 正则字符类的用法 A:字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内...f(交集) [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去) [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去) B:matches()方法的用法...案例代码 package com.ifenx8.regex; public class Demo2_Regex { /** * A:字符类 [abc] a、b 或 c(简单类)...a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去) [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去) B:matches()方法的用法...*/ public static void main(String[] args) { demo1();//[abc] a、b 或 c(简单类) demo2();//[^abc] 任何字符,
领取专属 10元无门槛券
手把手带您无忧上云