Spring

作者: 你挺ne呀 | 来源:发表于2021-04-16 01:22 被阅读0次

    配置文件


    Bean实例化三种方式.

    1.无参构造

    <bean id="daoDemo" class="org.example.dao.impl.daoDemo1impl" scope="prototype"/>
    <bean id="userDao" class="org.example.dao.impl.UserDaoImpl" init-method="init" destroy-method="destory"/>

    2.工厂静态

    <bean id="getUserDao" class="org.example.factory.staticFactory" factory-method="getUserDao"/>

    3.工厂实例

    <bean id="factory" class="org.example.factory.dynamicFactory"/>
    <bean id="getDynamicUserDao" factory-bean="factory" factory-method="getDynamicUserDao"/>


    *Bean的依赖注入


    • set方法

    private UserDao userDao;
    public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
    }

    <bean id="userDao" class="org.example.dao.impl.UserDaoImpl" init-method="init" destroy-method="destory"/>
    <bean id="userService" class="org.example.service.Impl.UserServiceImpl">
        <property name="userDao" ref="userDao"/>
    </bean>
    
    • 构造方法

    private UserDao userDao;
    public UserServiceImpl(){}
    public UserServiceImpl(UserDao userDao) {
    this.userDao = userDao;
    }

    <bean id="userService" class="org.example.service.Impl.UserServiceImpl">
        //第一个userDao是构造方法的参数, 第二个是引用容器中的bean的id
        <constructor-arg name="userDao" ref="userDao"/>
    </bean>
    

    Bean依赖注入的数据类型

    普通数据类型

    private String username;
    private int age;

    public void setUsername(String username) {
        this.username = username;
    }
    public void setAge(int age) {
        this.age = age;
    }
    <bean id="userDao001" class="org.example.dao.impl.UserDaoImpl001">
        <property name="username" value="zhangsan"/>
        <property name="age" value="19"/>
    </bean>
    

    引用数据类型

    集合数据类型
    * List

    <property name="strList">
    <list>
    <value>haha</value>
    <value>haa</value>
    <value>aha</value>
    <value>hahaaahaha</value>
    </list>
    </property>

    Map
    '''
    <property name="userMap">
    <map>
    <entry key="zhangsan" value-ref="user1"/>
    <entry key="lisi" value-ref="user2"/>
    </map>
    </property>
    <bean id="user1" class="org.example.domain.User">
    <property name="name" value="张三"/>
    <property name="age" value="229"/>
    </bean>
    <bean id="user2" class="org.example.domain.User">
    <property name="name" value="李四"/>
    <property name="age" value="888"/>
    </bean>
    '''


    引入其他配置文件


    使用import引入


    Spring相关API


    • ApplicationContext的实现类
      '''

      1. ClassPathXmlApplicationContext: 从类的根路径加载 , 推荐使用.
      2. FileSystemXmlApplicationContext: 从磁盘加载
      3. AnnotationConfigApplicationContext: 当使用注解配置容器对象时, 需要使用此类来创建spring容器, 它用来读取注解.
        '''
    • getBean()方法的使用

      1. 使用id eg. app.getBean(id)
      2. 使用字节码文件
        eg. app.getBean(class)

    Spring配置数据源


    1. 连接池(数据源)的作用

    Other

    @Resource 和 @Autowired,两者的区别,@Resource 是 javax.annotation.Resource包下,是JavaEE支持的;@Autowired 是org.springframework.beans.factory.annotation.Autowired 包下,是spring提供的,这会导致@Resource 的可扩展性优于 @Autowired,因为在导出一个项目时,使用 @Resource 注解,可以通过Java环境提供,而使用 @Autowired 注解的,需要额外引入spring包。

    相关文章

      网友评论

          本文标题:Spring

          本文链接:https://www.haomeiwen.com/subject/mlidlltx.html