Spring

2021-04-16  本文已影响0人  你挺ne呀

配置文件


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的依赖注入


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



Spring配置数据源


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

Other

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

上一篇 下一篇

猜你喜欢

热点阅读