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