01 2021 档案

摘要:使用Spring对JAX-WS(Java API for Xml Web Service)把服务发布为Web服务并使用Web服务 使用场景:不同应用之间调用公共的获取账号信息的服务。 @WebService注解所标示的类被认为Web服务的端点。 @WebMethod注解所标注的方法被认为是操作。 1 阅读全文
posted @ 2021-01-21 09:18 _Shing 阅读(183) 评论(0) 推荐(0)
摘要:1)声明导出服务(控制器) 2)将url请求映射到控制器上 2)将url请求映射到控制器上 来自为知笔记(Wiz) 阅读全文
posted @ 2021-01-21 09:16 _Shing 阅读(106) 评论(0) 推荐(0)
摘要:1)导出Hessian服务 @Beanpublic HessianServiceExporter hessianServiceExporterSpittrService(SpittrService spittrService){ HessianServiceExporter exporter = n 阅读全文
posted @ 2021-01-21 09:15 _Shing 阅读(131) 评论(0) 推荐(0)
摘要:RmiServiceExporter可以把任意Spring管理的bean发布到RMI服务。 package spittr.config;import org.springframework.context.annotation.Bean;import org.springframework.cont 阅读全文
posted @ 2021-01-21 09:12 _Shing 阅读(138) 评论(0) 推荐(0)
摘要:表达式驱动的注解,包括@PreAuthorize、@PostAuthorize、@PreFilter、@PostFilter 将@EnableGloBalMethod-Security注解的prePostEnable属性设置为true,开启对上述注解的AOP ​14.2.1表述方法访问规则 定义许可 阅读全文
posted @ 2021-01-21 09:11 _Shing 阅读(131) 评论(0) 推荐(0)
摘要:RMI:使用Java标准的对象序列化,但难以穿透防火墙 Hessian(二进制)和Burlap(XML):使用http,很好的穿透防火墙,但使用私有的对象序列化,不适合复杂的对象。 Spring的HttpInvoker:上面两者的结合。 来自为知笔记(Wiz) 阅读全文
posted @ 2021-01-21 09:11 _Shing 阅读(93) 评论(0) 推荐(0)
摘要:Spring Security提供了三种不同的安全注解: Spirng Security自带的@Secured注解;JSR-250的@RoleAllowed注解;表达式驱动的注解,包括@PreAuthorize、@PostAuthorize、@PreFilter、@PostFilter @Secur 阅读全文
posted @ 2021-01-21 09:10 _Shing 阅读(132) 评论(0) 推荐(0)
摘要:@Cacheable:在执行方法前,现在缓存中查找。查到了返回结构,如果查不到执行方法。 @CachePut:不管如何都执行方法,然后将结果放到缓存中。 上面两个可以组合使用,@Cacheable用于fing方法,@CachePut用于save方法。当执行完save方法后将结果存到缓存中,在调用fi 阅读全文
posted @ 2021-01-21 09:08 _Shing 阅读(187) 评论(0) 推荐(0)
摘要:package spittr.config;<!--more-->import net.sf.ehcache.CacheManager;import org.springframework.cache.annotation.EnableCaching;import org.springframewo 阅读全文
posted @ 2021-01-21 09:07 _Shing 阅读(147) 评论(0) 推荐(0)
摘要:来自为知笔记(Wiz) 阅读全文
posted @ 2021-01-21 09:03 _Shing 阅读(133) 评论(0) 推荐(0)
摘要:/**<!--more--> * 通过重载,配置如果通过拦截器保护请求 * @param http * @throws Exception */ @Override protected void configure(HttpSecurity http) throws Exception {// su 阅读全文
posted @ 2021-01-21 09:02 _Shing 阅读(180) 评论(0) 推荐(0)
摘要:自定义的登录页 /** * 通过重载,配置如果通过拦截器保护请求 * @param http * @throws Exception */ @Override protected void configure(HttpSecurity http) throws Exception { //添加默认登 阅读全文
posted @ 2021-01-21 09:02 _Shing 阅读(126) 评论(0) 推荐(0)
摘要:用户信息存储 /** * 通过重载,配置user-detail服务<!--more--> * @param auth * @throws Exception */ @Override protected void configure(AuthenticationManagerBuilder auth 阅读全文
posted @ 2021-01-21 09:01 _Shing 阅读(197) 评论(0) 推荐(0)
摘要:###《Spring源码深度解析》 ####第二章容器的基本实现 2.2功能分析(Spring的简易实现) 2.4Spring的结构组成 2.5容器的基础XmlBeanFactory 2.6获取XML的验证模式 2.7获取Document 2.8解析及注册BeanDefinitions ####第三 阅读全文
posted @ 2021-01-15 18:26 _Shing 阅读(249) 评论(0) 推荐(0)
摘要:默认情况下,只会更新匹配查询器的第一个文档。要更新所有匹配的文档,就需要显示指定多文档更新模式。在shell中,使用multi:true来实现。 在文档级别更新是原子性的,这意味着一条更新10个文档的语句可能在更新3个文档后由于某种原因失败。应用程序必须根据自己的策略来处理这些失败。 upserts 阅读全文
posted @ 2021-01-15 09:52 _Shing 阅读(546) 评论(0) 推荐(0)
摘要:这个命令允许我们在修改文档的同时返回修改前(或者修改后)的文档。可以在这种场合下使用,当你要获取并更新一个文档(或者更新并获取它)时,可能有另外一个MongoDB用户修改这个文档,虽然更新是原子性的,但也不可能知道我们更新文档的真实状态(更新前或者后),除非使用findAndModify。其他选择是 阅读全文
posted @ 2021-01-15 09:51 _Shing 阅读(279) 评论(0) 推荐(0)
摘要:{multi:true},它允许对所有匹配的文档执行更新,如果没有{multi:true},则只会更新第一个匹配的文档。 db.users.update({ ... 'addresses.name':'work'}, ... {$set:{'addresses.$.street':'12 E.23r 阅读全文
posted @ 2021-01-15 09:49 _Shing 阅读(136) 评论(0) 推荐(0)
摘要:通过查询获取整个文档doc,设置doc的email属性后,通过update更新整个文档。 替换是更通用的做法。想象一下通过引用HTML表单来更新用户user数据。使用文档替换时,数据从表单提交,一旦验证,就可以传递给MongoDB,不管那个字段被更新,代码执行更新是相同的。但是这种方式不友好在于网络 阅读全文
posted @ 2021-01-15 09:48 _Shing 阅读(168) 评论(0) 推荐(0)
摘要:var product = db.products.findOne({ 'slug':'wheel-barrow-9092'}) > db.reviews.count({'product_id':product['_id']}) 1 db.orders.distinct('shipping_addr 阅读全文
posted @ 2021-01-15 09:46 _Shing 阅读(144) 评论(0) 推荐(0)
摘要:我们可以为aggregate()传递第二个参数来指定聚合调用。选项参数如下: explain()--运行管道并且只返回管道处理详细信息。 allowDiskUse--使用磁盘存储数据。 cursor--指定初始批处理的大小。 db.collection.aggregate(pipeline,addi 阅读全文
posted @ 2021-01-15 09:45 _Shing 阅读(269) 评论(0) 推荐(0)
摘要:$concat:连接两个或者更多字符串为一个字符串 $strcasecmp:大小写敏感的比较,返回数字 $substr:获取字符串的子串 $toLower:转为小写字符串 $toUpper:转为大写字符串 例子: 允许结果: 文档 https://docs.mongodb.com/manual/re 阅读全文
posted @ 2021-01-15 09:44 _Shing 阅读(125) 评论(0) 推荐(0)
摘要:$project返回指定的字段。也可在aggregate中重塑文档。 来自为知笔记(Wiz) 阅读全文
posted @ 2021-01-15 09:42 _Shing 阅读(137) 评论(0) 推荐(0)
摘要:为调用聚合框架就要定义一个管道。聚合管道(aggregation pipeline)里的每一步输出都作为下一步的输入。每一步都在输入文档执行单个操作并生成输出文档。 聚合管道操作包含下面几个部分: $project-指定输出文档里的字段(项目化)。$match-选择要处理的文档,与find()类似。 阅读全文
posted @ 2021-01-15 09:41 _Shing 阅读(193) 评论(0) 推荐(0)
摘要:db.reviews.find({'product_id':product['_id']}).skip(0).limit(12).sort({'helpful_votes':-1}) skip+limit实现分页。sort实现排序(降序)。<!--more--> db.users.findOne( 阅读全文
posted @ 2021-01-15 09:40 _Shing 阅读(179) 评论(0) 推荐(0)
摘要:盖子集合(capped collection,也指有上限的集合,好像盖了盖子一样)。盖子集合最初是为高性能日志场景设计的。它与标准的集合不同,因为有固定的大小。这意味着一旦盖子集合达到最大上限,后续的插入将会覆盖最先插入的文档数据。 db.createCollection("users.action 阅读全文
posted @ 2021-01-15 09:39 _Shing 阅读(254) 评论(0) 推荐(0)
摘要:数据库garden products {"_id":"4c4b1476238d3b4dd50003981","slug":"wheelbarrow-9092","sku":"9092","name":"Extra Large Wheelbarrow","description":"Heavy dut 阅读全文
posted @ 2021-01-15 09:38 _Shing 阅读(201) 评论(0) 推荐(0)
摘要:MongoDB对象ID被设计成全局唯一,这意味着它可以在特定的上下文里确保唯一。 最重要的4个字节包含着标准的Unix时间戳。后面3个字节是机器ID,紧跟着是2个字节的进程id。最后3个字节存储的是进程本地计数器,每次生成新ID就会自动增长。计数器可以保证同一个进程和同一个时刻内不会重复。 为什么对 阅读全文
posted @ 2021-01-15 09:34 _Shing 阅读(169) 评论(0) 推荐(0)
摘要:package MongoQuickStart; import com.mongodb.MongoClient; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com 阅读全文
posted @ 2021-01-15 09:33 _Shing 阅读(147) 评论(0) 推荐(0)
摘要:> db.numbers.find({num:{$gt:30,$lt:50}}) explain描述了查询路径并且允许开发者通过确定查询使用的索引来诊断慢的查询语句。 db.numbers.createIndex({num:1}) db.numbers.getIndexes() 创建索引后,通过ex 阅读全文
posted @ 2021-01-15 09:32 _Shing 阅读(160) 评论(0) 推荐(0)
摘要:MongoDB的集合与关系型数据库中的表类似。 MongoDB把集合分别存储在不同的数据库中。与传统的SQL数据库不同,MongoDB的数据库只区分集合的命名空间。要查询MongoDB数据库,需要知道存储文档数据的数据库和集合的名字。如果开始没有指定数据库,shell会选择默认的test数据库。 > 阅读全文
posted @ 2021-01-15 09:29 _Shing 阅读(259) 评论(0) 推荐(0)
摘要:MongoDB包含了几个命令行工具 MongoDBdump和Mongorestore-备份和恢复数据库的工具。mongodump把数据库数据保存为原生的BSON格式,因此最适合用于备份。 Mongoexport和Mongoimport-导入或者导出JSON、CSV、TSV格式的数据。 Mongosn 阅读全文
posted @ 2021-01-15 09:28 _Shing 阅读(140) 评论(0) 推荐(0)
摘要:MongoDB的数据模型是面向文档的(反范式设计)。 常说的系统支持主动查询模式(ad hoc queries)是指不需要事先定义系统接收何种查询。关系数据库系统有这个属性,它们忠实地执行格式正确的包含各种条件的SQL。但不是所有数据库都支持动态查询,例如键值存储的查询只支持一个领域的查询:键key 阅读全文
posted @ 2021-01-15 09:27 _Shing 阅读(157) 评论(0) 推荐(0)
摘要:MongoDB是为快速开发互联网Web应用而设计的数据库系统。其数据模型和持久化策略就是为了构建高读/写吞吐量和高自动灾害伸缩性的系统。无论系统需要单个还是多个节点,MongoDB都可以提供高性能。如果你经历过关系型数据库的伸缩困境,那么使用MongoDB就可避免这种困境。但并非每个人都需要伸缩性操 阅读全文
posted @ 2021-01-15 09:25 _Shing 阅读(132) 评论(0) 推荐(0)
摘要:Spring Security借助于一系列Servlet Filter来提供各种安全功能。 DelegatingFilterProxy是一个特殊的Servlet,它本身所做的工作并不多,只是将工作委托给 Javax.Servlet.Filter实现类,这个实现类作为一个<bean>注册在Spring 阅读全文
posted @ 2021-01-14 19:58 _Shing 阅读(201) 评论(0) 推荐(0)
摘要:import org.springframework.web.bind.annotation.ControllerAdvice;<!--more-->import org.springframework.web.bind.annotation.ExceptionHandler;/** * @vers 阅读全文
posted @ 2021-01-14 19:57 _Shing 阅读(124) 评论(0) 推荐(0)
摘要:基于Java的初始化器创建组件(Servlet、Filter),最简单的方式就是实现Spring的WebApplication-Initializer。 package spittr.config;<!--more-->import org.springframework.web.WebApplic 阅读全文
posted @ 2021-01-14 19:56 _Shing 阅读(276) 评论(0) 推荐(0)
摘要:7.2.1配置multipart解析器: DispatcherServlet没有实现Multipart请求数据的功能。<!--more-->它将该任务委托给MultipartResolver接口的实现来处理。Spring3.1开始为我们提供了两个解析类:StandardServletMultipar 阅读全文
posted @ 2021-01-14 19:55 _Shing 阅读(145) 评论(0) 推荐(0)
摘要:如果配置了多个视图解析器,没有指定顺序,可以使用按照返回的名字匹配 package spittr.config;<!--more-->import org.springframework.context.annotation.Bean;import org.springframework.conte 阅读全文
posted @ 2021-01-14 19:54 _Shing 阅读(194) 评论(0) 推荐(0)
摘要:Spring MVC的校验 来自为知笔记(Wiz) 阅读全文
posted @ 2021-01-14 19:53 _Shing 阅读(111) 评论(0) 推荐(0)
摘要:本章内容: 映射请求到Spring控制器 透明的绑定表单参数 校验表单提交 <!--more--> Spring MVC(模型model-视图view-控制器controller) 1.请求离开浏览器时,带着信息,url。 2.请求的第一站是DispatcherServlet前端控制器。Spring 阅读全文
posted @ 2021-01-14 19:52 _Shing 阅读(153) 评论(0) 推荐(0)
摘要:AOP好处: 1.把分散在各处的行为放入可重用的模块中。 2.减少代码冗余,并让我们的类专注于自己。 来自为知笔记(Wiz) 阅读全文
posted @ 2021-01-14 19:51 _Shing 阅读(142) 评论(0) 推荐(0)
摘要:package aspect;<!--more-->/** * @version 版权 Copyright(c)2019 * @ClassName: 表演接口 * @Descripton: * @author: Shing * @date: 2020-06-09 18:35 */public int 阅读全文
posted @ 2021-01-14 19:47 _Shing 阅读(172) 评论(0) 推荐(0)
摘要:execution( * concert.Performance.perform(..) ) execution 在方法执行时触发 * 返回任意类型 concert.Performance.perform 方法所属的类+方法名 .. 使用任意参数 execution( * concert.Perfo 阅读全文
posted @ 2021-01-14 19:46 _Shing 阅读(150) 评论(0) 推荐(0)
摘要:当我们需要处理一些共同的业务时(事务、安全),我们可以使用继承的方式来实现。但是继承往往导致了一个脆弱的体系。切面提供了取代继承的另外一种方案。在很多场景下更清晰明了。 切面的好处: 1.每一个关注点都可以集中在一个地方。而不是分散在多处代码中。 2.服务代码更简洁,因为它们只包含主要关于点(或核心 阅读全文
posted @ 2021-01-14 19:45 _Shing 阅读(583) 评论(0) 推荐(0)
摘要:spring提供两种在运行时求值的方式。 属性占位符(Property placeholder) spring表达式语言(SpEl) 通过声明属性源并通过Spring的Enviroment来检索属性 Spring Environment的方法 String getProperty(String ke 阅读全文
posted @ 2021-01-14 19:44 _Shing 阅读(151) 评论(0) 推荐(0)
摘要:Spring定义了多种作用域,可以基于一下作用域创建bean: 单例(Singleton):在整个应用中,只创建一个bean实例。默认这种。 原型(Prototype):每次注入获取通过上下文获取时,创建一个新的bean实例。 会话(Session):在web应用中,为每个会话创建一个bean实例。 阅读全文
posted @ 2021-01-14 19:43 _Shing 阅读(104) 评论(0) 推荐(0)
摘要:3.3.2限定自动装配的bean(@Qualifier 与@autowired配合使用) @Qualifier("bean的名称") 来自为知笔记(Wiz) 阅读全文
posted @ 2021-01-14 19:42 _Shing 阅读(116) 评论(0) 推荐(0)
摘要:解决多个环境下数据库配置。 @Profile("dev"):在spring3.1中profile只能在累上使用,spring3.2之后就可以在方法上使用了(也就是一个类中可以配置多个了) <beans profile="dev" /> <beans profile="prod" /> spring. 阅读全文
posted @ 2021-01-14 19:41 _Shing 阅读(133) 评论(0) 推荐(0)
摘要:在使用了@bean注解下的可以使用@Conditional注解实现条件化的bean,满足条件创建bean。 @Conditional(实现类.class) 在spring4中出现。而且profile在spring4中使用conditional重构 来自为知笔记(Wiz) 阅读全文
posted @ 2021-01-14 19:41 _Shing 阅读(156) 评论(0) 推荐(0)
摘要:@Import(CDCONFIG.class) / @Import({A.class,B.class}) 在javaconfig中引入javaconfig @ImportRsource("classpath:cd-config.xml") 在javaconfig中引入xml 如果引入的文件中有被使用 阅读全文
posted @ 2021-01-14 19:40 _Shing 阅读(124) 评论(0) 推荐(0)
摘要:<?xml version="1.0" encoding="UTF-8"?><!--more--><beans xmlns="http://www.springframework.org/schema/beans" xmlns:c="http://www.springframework.org/sc 阅读全文
posted @ 2021-01-14 19:38 _Shing 阅读(112) 评论(0) 推荐(0)
摘要:@Configuration:表明这是个配置类,该类应该包含在spring应用上下文中。如果@Bean修饰的方法被 @Configuration修饰,那么方法是单例的。 @Bean:注解会告诉spring这个返回返回一个对象。该对象要注册为spring应用上下文中的bean,方法体中 包含了最终产生 阅读全文
posted @ 2021-01-14 19:35 _Shing 阅读(164) 评论(0) 推荐(0)
摘要:Spring从两个角度来实现自动化装配: 组建扫描(component scanning):@ComponentScan默认会扫描与配置类相同的包与该包的子包。查找 带有@Component注解的类并为其创建bean。 @Component:被扫描到会创建bean。 自动装配(autowried): 阅读全文
posted @ 2021-01-14 19:33 _Shing 阅读(109) 评论(0) 推荐(0)
摘要:忽略,限制和排序查询选项1 db.reviews.find({'product_id':product['_id']}).skip(0).limit(12).sort({'helpful_votes':-1}) 1 1 db.reviews.find({'product_id':product['_ 阅读全文
posted @ 2021-01-14 19:30 _Shing 阅读(173) 评论(0) 推荐(0)
摘要:当经历过resolveBeforeInstantiation方法后,程序有两个选择。如果创建了代理或者说重写了InstantiationAwareBeanPostProcessor的postProcessBeforeInstantiation方法并在方法postProcessBeforeinstan 阅读全文
posted @ 2021-01-13 17:17 _Shing 阅读(227) 评论(0) 推荐(0)
摘要:5.6.1什么是循环依赖、循环调用 循环依赖:实例化bean是一个复杂的过程。循环依赖就是两个或者多个bean相互之间持有对方,比如TestA引用TestB,TestB引用TestA,则它们最终反映为一个环。 循环调用:循环调用是方法之间的环调用。循环调用是无法解决的,除非有终结条件,否则就是死循环 阅读全文
posted @ 2021-01-13 17:16 _Shing 阅读(208) 评论(0) 推荐(0)
摘要:AbstractAutowireCapableBeanFactory protected Object createBean(String beanName, RootBeanDefinition mbd, @Nullable Object[] args) throws BeanCreationEx 阅读全文
posted @ 2021-01-13 17:15 _Shing 阅读(162) 评论(0) 推荐(0)
摘要:DefaultSingletonBeanRegistry public Object getSingleton(String beanName, ObjectFactory<?> singletonFactory) { Assert.notNull(beanName, "Bean name must 阅读全文
posted @ 2021-01-13 17:14 _Shing 阅读(178) 评论(0) 推荐(0)
摘要:让我们尝试打开"5.bean的加载 - 3) bean的实例化的大门": AbstractBeanFactory protected Object getObjectForBeanInstance( Object beanInstance, String name, String beanName, 阅读全文
posted @ 2021-01-13 17:13 _Shing 阅读(309) 评论(0) 推荐(0)
摘要:DefaultSingletonBeanRegistry public Object getSingleton(String beanName) { //参数true设置标识允许早期依赖(提前引用) return getSingleton(beanName, true); } protected O 阅读全文
posted @ 2021-01-13 17:12 _Shing 阅读(194) 评论(0) 推荐(0)
摘要:一般情况下,Spring通过反射机制利用bean的class属性指定实现类来实例化bean。在某些情况下,实例化bean的过程比较复杂,如果按照传统的方式,则需要在<bean>中提供大量的配置信息。配置方式的灵活性是受限的,Spring为此提供了一个org.SpringFramwork.bean.f 阅读全文
posted @ 2021-01-13 17:11 _Shing 阅读(233) 评论(0) 推荐(0)
摘要:以applicationContext.getBean("text")为入口,开始bean的加载。 AbstractBeanFactory public Object getBean(String name) throws BeansException { return doGetBean(name 阅读全文
posted @ 2021-01-13 17:11 _Shing 阅读(202) 评论(0) 推荐(0)
摘要:很多情况下,我们需要为系统提供可配置化的支持,简单的做法可以直接基于Spring的标准bean来配置,但是配置较为复杂或者需要更多丰富控制的时候,会显得笨拙。此时Spring提供了可拓展的支持,拓展Spring自定义标签大致需要一下几个步骤: 创建一个需要拓展的组件 定义一个XSD文件描述组件内容 阅读全文
posted @ 2021-01-13 17:06 _Shing 阅读(210) 评论(0) 推荐(0)
摘要:自定义标签的解析过程入口: DefaultBeanDefinitionDocumentReader protected void parseBeanDefinitions(Element root, BeanDefinitionParserDelegate delegate) { //beans下的 阅读全文
posted @ 2021-01-13 17:06 _Shing 阅读(252) 评论(0) 推荐(0)
摘要:3.2alias标签解析 终于解析完了默认标签中对bean标签的解析,解析来对配置文件中import标签、alias标签、beans标签进行分析。 alias标签,别名标签。在配置文件中,有两种声明别名的方式。 1)bean标签的name属性(name支持配置多个,可以用,;分隔) <bean id 阅读全文
posted @ 2021-01-13 16:55 _Shing 阅读(244) 评论(0) 推荐(0)
摘要:3.1.2AbstrctBeanDefiniton属性 至此我们完成了XML文档中的bean标签到GenericBeanDefinition对象的转换,也就是说到这里,XML中所有配置都可以在GenericBeanDefinition实例中找到对于的位置。 GenericBeanDefinition 阅读全文
posted @ 2021-01-13 16:54 _Shing 阅读(223) 评论(0) 推荐(0)
摘要:默认标签解析是在parseDefaultElement中进行的。下面函数功能一目了然,分别对四种标签(import,alias,bean,beans)做不同处理。 DefaultBeanDefinitionDocumentReader private void parseDefaultElement 阅读全文
posted @ 2021-01-13 16:53 _Shing 阅读(298) 评论(0) 推荐(0)
摘要:XmlBeanDefinitionReader public int registerBeanDefinitions(Document doc, Resource resource) throws BeanDefinitionStoreException { BeanDefinitionDocume 阅读全文
posted @ 2021-01-13 16:52 _Shing 阅读(157) 评论(0) 推荐(0)
摘要:XmlBeanDefinitionReader protected Document doLoadDocument(InputSource inputSource, Resource resource) throws Exception { return this.documentLoader.lo 阅读全文
posted @ 2021-01-13 16:51 _Shing 阅读(192) 评论(0) 推荐(0)
摘要:BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactory.xml")); 初始化XmlBeanFactory逻辑的时序图: 2.5.1读取配置文件(资源)的方式 对于不同来源的资源文件都有相应的Resource实现。 阅读全文
posted @ 2021-01-13 16:41 _Shing 阅读(269) 评论(0) 推荐(0)
摘要:2.4.2核心类介绍1.DefaultListableBeanFactoryAliasRegistry:定义对Alias的简单增删改查操作。SimpleAliasRegistry:只要使用map作为alias的缓存。并实现AliasRegistry接口。SingletonBeanRegistry:定 阅读全文
posted @ 2021-01-12 17:24 _Shing 阅读(220) 评论(0) 推荐(0)
摘要:1.创建一个Bean2.将Bean注入Spring容器3.从容器中获取bean直接使用BeanFactory作为容器对于Spring的使用并不多见。在企业级应用开发中大多数使用ApplicationContext。从上述功能中Spring到底做了什么:1)读取配置文件beanFactoryTest. 阅读全文
posted @ 2021-01-12 17:19 _Shing 阅读(132) 评论(0) 推荐(0)