通过静态工厂的方法创建bean;和实例工厂方法:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <!-- 通过静态工厂的方法来配置bean ,注意不是配置静态工厂的实例,而是配置bean的实例 -->
  6. <!-- class 属性:指向的是静态工厂方法的全类名
  7. factory-method :指向的是静态工厂方法的名字
  8. constructor-arg:如果工厂方法需要传入参数,则使用constructor-arg来配置参数 -->
  9. <bean id="car" class="lib2.Car"
  10. factory-method="gerCae">
  11. <constructor-arg value="audi"></constructor-arg></bean>
  12. <!-- 配置工厂的实例 -->
  13. <bean id="casec" class="instance"></bean>
  14. <!-- 通过实例工厂方法来配置bean -->
  15. <!-- factory-bean: 属性:指向的是静态工厂方法的bean
  16. factory-method :指向的是静态工厂方法的名字
  17. constructor-arg:如果工厂方法需要传入参数,则使用constructor-arg来配置参数 -->
  18. <bean id="cae" factory-bean="cad" factory-method="cac">
  19. <constructor-arg value="asca"></constructor-arg></bean>
  20.  
  21. </beans>

factory来配置bean。创建类的时候要继承接口

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <!--
  6. 通过factorybean来配置bean的实例
  7. class:只想factorybean的全类名
  8. property:配置的事factorybean的属性(可能是里面的复制函数set) -->
  9. <bean id="Car" class="factorybean">
  10. <property name="brand" value="bwm"></property></bean>
  11.  
  12. </beans>

基于注解来配置bean和bean的线相关的属性。

组件扫描:spring能够从classpath夏自动扫描、侦测和实例化具有特定注释的组件;

  1. package test1;
  2.  
  3. import org.springframework.stereotype.Component;
  4.  
  5. @Component
  6. public class TestObject {
  7.  
  8. }
  9. package test2;
  10.  
  11. import org.springframework.stereotype.Repository;
  12.  
  13. @Repository
  14. public class UserReposityImpl implements UserRepository {
  15.  
  16. @Override
  17. public void save() {
  18. // TODO Auto-generated method stub
  19. System.out.println("UserRepository save....");
  20.  
  21. }
  22. }package test3;
  23.  
  24. import org.springframework.stereotype.Service;
  25.  
  26. @Service
  27. public class UserService {
  28. public void add()
  29. {
  30. System.out.println("UserSerivce add..");
  31. }
  32.  
  33. }
  34. package test4;
  35.  
  36. import org.springframework.stereotype.Controller;
  37.  
  38. @Controller
  39. public class UserController {
  40. public void execute()
  41. {
  42. System.out.println("UserController execute..");
  43. }
  44. }
  45. <?xml version="1.0" encoding="UTF-8"?>
  46. <beans xmlns="http://www.springframework.org/schema/beans"
  47. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  48. xmlns:context="http://www.springframework.org/schema/context"
  49. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  50. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
  51. <!-- 指定spring ioc容器扫描的包 -->
  52. <context:component-scan base-package="test1.TestObject"></context:component-scan>
  53.  
  54. </beans>
  55. package test1;
  56.  
  57. import org.springframework.context.ApplicationContext;
  58. import org.springframework.context.support.ClassPathXmlApplicationContext;
  59.  
  60. import test2.UserRepository;
  61. import test3.UserService;
  62. import test4.UserController;
  63.  
  64. public class Main {
  65. public static void main(String[] args) {
  66. // TODO Auto-generated method stub
  67. ApplicationContext ct=new ClassPathXmlApplicationContext("beans-053.xml");
  68. TestObject to=(TestObject) ct.getBean("testObject");
  69. UserController userController=(UserController) ct.getBean("userController");
  70. UserRepository userRepository=(UserRepository) ct.getBean("userRepository");
  71. UserService userService=(UserService) ct.getBean("userService");
  72. System.out.println(to);
  73. System.out.println(userController);
  74. System.out.println(userService);
  75. System.out.println(userRepository);
  76.  
  77. }
  78. }

关于MyBeanPostProcessor的应用。

spring05的更多相关文章

  1. Spring-05 使用注解开发

    Spring-05 使用注解开发 使用注解开发 1.项目准备 在spring4之后,想要使用注解形式,必须得要引入aop的包5 <!-- https://mvnrepository.com/ar ...

  2. spring05配置文件之间的关系

    一:配置文件包含关系 1.创建对应的实体类 public class Student { //学生实体类 private String name; //姓名 private Integer age; ...

  3. Spring-05 -AOP [面向切面编程] -Schema-based 实现aop的步骤

    一.AOP [知识点详解] AOP:中文名称面向切面编程 英文名称:(Aspect Oriented Programming) 正常程序执行流程都是纵向执行流程 3.1 又叫面向切面编程,在原有纵向执 ...

  4. Spring05——Spring 如何实现事务管理

    在此之前,我们已经了解了 Spring 相关的基础知识,今天将为给位带来,有关 Spring 事务代理的相关知识.关注我的公众号「Java面典」,每天 10:24 和你一起了解更多 Java 相关知识 ...

  5. 玩转spring boot——结合JPA入门

    参考官方例子:https://spring.io/guides/gs/accessing-data-jpa/ 接着上篇内容 一.小试牛刀 创建maven项目后,修改pom.xml文件 <proj ...

  6. Spring:AOP面向切面编程

    AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果. AOP是软件开发思想阶段性的产物,我们比较熟悉面向过程O ...

  7. Spring实现Ioc的多种方式--控制反转、依赖注入、xml配置的方式实现IoC、对象作用域

    Spring实现Ioc的多种方式 一.IoC基础 1.1.概念: 1.IoC 控制反转(Inversion of Control) IoC是一种设计思想. 2.DI 依赖注入 依赖注入是实现IoC的一 ...

  8. Spring4学习回顾之路10-Spring4.x新特性:泛型依赖注入

    泛型依赖注入:Spring 4.x中可以为子类注入子类对应的泛型类型的成员变量的引用. 话语太过抽象,直接看代码案例,依次建立如下代码: User.java package com.lql.sprin ...

  9. 环绕通知(xml)

    1.maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

随机推荐

  1. 2020 还不会泡 Github 你就落伍了

    前言 回想起两年前缸接触 GitHub 那会儿,就发现网上完全搜不到一篇关于 github 使用的文章,虽然自己倒腾几下慢慢的也就上手了,但毕竟花费了不少时间. 时间对每个人都是宝贵的,一直很好奇 G ...

  2. gitbook 入门教程之超高颜值的思维导图simple-mind-map插件

    欢迎访问 gitbook-plugin-simple-mind-map 官网

  3. [BUG]Uncaught TypeError: Illegal invocation at HTMLDivElement.

    <div id="clickMe" key="1">点我</div> clickMe.onclick = function (event ...

  4. 工作了这么长时间,是不是非用macbook pro不可呢?

    连续奋战了二十多天,肉眼可见自己的状态一天不如一天.总觉得自己是不是该放下一切好好休息两天,但是理智又告诉我不能停.不能停. 既然不能停,那就把之前攒下的文章写一写吧. 什么是macbook pro ...

  5. MySQL数据库02

    MySQL数据库 前言: 前面我们了解了什么是数据库,什么是MySQL数据库以及如何运用,接下来我们接着深入学习MySQL. (提前声明,以下所提供的事例不标准,仅供参考) 数据库的备份与还原: 备份 ...

  6. [并查集+逆向思维]Codeforces Round 722C Destroying Array

    Destroying Array time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  7. UVA129 Krypton Factor 困难的串 dfs回溯【DFS】

     Krypton Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  8. 计算智能(CI)之粒子群优化算法(PSO)(一)

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 计算智能(Computational Intelligence , ...

  9. 用卷积神经网络和自注意力机制实现QANet(问答网络)

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/ ,学习更多的机器学习.深度学习的知识! 在这篇文章中,我们将解决自然语言处理(具体是指问答)中最具挑战性 ...

  10. 仅用200个样本就能得到当前最佳结果:手写字符识别新模型TextCaps

    由于深度学习近期取得的进展,手写字符识别任务对一些主流语言来说已然不是什么难题了.但是对于一些训练样本较少的非主流语言来说,这仍是一个挑战性问题.为此,本文提出新模型TextCaps,它每类仅用200 ...