博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring框架(第二天)
阅读量:4841 次
发布时间:2019-06-11

本文共 2935 字,大约阅读时间需要 9 分钟。

一、 注入

a)  set

  i. JDK

    1.八种基本类型(+包装类)+String

      

18
dsl

 

    2.数组

      

1111
2222
3333

 

    3.List

1111
2222
3333

  

    4.Set

aaa
bbb
ccc

 

    5.Map

    
001
dsl
002
dsl2

 

    6.Properties 集合HashTable的子类 类似于Map<String,String>

    

 

  ii. 自定义类型(程序员自己定义+开源框架提供的类型) 成员变量注入

  

UserService{   UserDao ud;        }//spring配置文件    

 

    

b) 构造

18
dsl

  根据标签的个数, 自动匹配对应的构造方法

  注意:构造重载

  构造方法参数不同

  通过标签个数匹配构造方法

  构造方法参数相同

  通过为标签体检type属性  区分调用哪个类型的构造方法

 

18

 

 

 

二、 目的为成员变量赋值,优势是:解耦和

三 、Spring创建对象和注入的原理

  a) 创建对象

    <bean id="User" class="xxx.User"/> User{int age;String name}

      1.读取配置文件,加载类信息

      2.通过反射创建对应类的对象,反射调用无参构造函数。

  b) 注入

18
dsl
User user =new User();user.setAge(18);user.setName(“dsl”)

四、FactoryBean技术

 对象(简单对象 可以通过构造方法直接创建的对象)

 

  对象(复杂对象 不能通过构造方法直接创建的对象,由若干步骤组成)

 

   Connection : 

 

     Class.forName(“oracle.jdbc.OracleDriver”) //com.mysql.jdbc.Driver  

 

     Connection conn = DriverManager.getConnection();   

 

  SqlSession:

 

    Resources.getResourceAsStream(“Myabtis-config.xml”)

 

    New SqlSessionFactoryBuilder().build(is);

 

    Ssf.openSession()

 

 a) FactoryBean开发过程

  i. 类 实现 FactoryBean接口: class ConnectionFactoryBean implements FactoryBean

  ii. 覆盖接口中的所有方法 FactoryBean  方法有3 

  1. //用于书写复杂对象的创建过程的代码,并将创建的复杂对象返回

 

    public Object getObject(){

 

    Class.forName(“oracle.jdbc.OracleDriver”) //com.mysql.jdbc.Driver  

 

    Connection conn = DriverManager.getConnection();  

 

    return conn;

 

    }

  2.//用于返回复杂对象的实际类型

    public Class getObjectType(){

    return Connnection.class

    }

  

  3.//用于控制复杂对象的创建次数

    public Boolean isSingleton(){

    return true;//工厂只会创建一次当前对象  SqlSessionFactory

    return false;//每次创建一个新的对象   connection

    }

  iii.配置文件进行配置

    <bean id=”conn” class=”xxx.ConnectionFactoryBean”/>  Connection

    获取复杂对象:

    Connection  conn = (Connection)ApplicationContext.getBean(“conn”);

 

    注意:如果创建的是复杂对象(实现了FactoryBean接口),通过bena标签ID值获取的对象就是要创建的复杂对象

        1、 isSingleton方法返回值怎么确定  看需求 根据对象的特点定

        2、 获取ConnectionFactoryBean类的对象?

 

          ConnectionFactoryBean cfb = (ConnectionFactoryBean)ApplicationContext.getBean(“&conn”);

 

   

    

 

    

 

转载于:https://www.cnblogs.com/dslnn/p/8902314.html

你可能感兴趣的文章
Linux GCC常用命令
查看>>
拷贝变换3字节像素到4字节内存
查看>>
PythonDay01
查看>>
Oracle数据库的JDBC衔接
查看>>
运用 KCheckGmail 监视 Gmail
查看>>
asp.net core mvc 读取appsettings.config中文乱码问题
查看>>
asp.net 的log4net的helper类
查看>>
shell编程
查看>>
2018上IEC计算机高级语言(C)作业 第1次作业
查看>>
hdu 1753
查看>>
return ;
查看>>
td在relative模式下,IE9不显示border
查看>>
7-内置数据结构
查看>>
version control(版本控制)
查看>>
FutureTask
查看>>
JDBC的元数据
查看>>
Intel CPU参数查询网站
查看>>
JQuery - Ajax和Tomcat跨域请求问题解决方法!
查看>>
spring跨重定向传递数据
查看>>
10693 PKKJ的生日礼物
查看>>