SSM学习--Spring配置文件配置
文章目录SpringSpring程序开发步骤Bean标签范围配置bean的依赖注入Bean的依赖注入方式构造方法集合数据类型的注入Spring的主要配置ApplicationContext的继承体系SpringSpring是分层的Java SE/EE应用full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Progr
文章目录
Spring
Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和
AOP(Aspect Oriented Programming:面向切面编程)为内核.
Spring程序开发步骤
- 导入Spring开发的基本包坐标,即导入依赖
- 导入Dao接口和实现类
- 创建Spring核心配置文件,常命名为applicationContext.xml
- 在Spring配置文件中配置UserDaoImpl
- 使用Spring的API获得Bean实例
在pom.xml中添加
<!--导入spring的context坐标,context依赖core,beans,expression-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
在resources下创建applicationContext.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-
beans.xsd">
<!-- 配置UserDaoImpl-->
<bean id="userDao" class=dao.impl.UserDaoImpl"></bean>
</beans>
其中id为Bean实例在Spring容器中的唯一标识,class为java目录下所对应类的路径(Bean的全限定名称)
@Test
public void test(){
ApplicationContext applicationContext = new
ClassPathXmlApplicationContext("applicationContext.xml");//注入配置文件
UserDao userDao = (UserDao) applicationContext.getBean("userDao");//括号中为配置文件中UserDaoImlp配置的id
userDao.save();
Bean标签范围配置
scope的值:
- singleton:默认的单例的,Bean的实例化个数为1,当spring的核心文件被加载时,实例化配置的Bean实例;当应用加载创建容器时,对象就被创建了,只要spring容器存在,对象就能存活
- prototype:,Bean的实例化个数可以有多个,当getBean()方法被调用时实例化Bean;当使用对象时,会创建新的对象实例,当对象长时间不用时,就会被java的垃圾回收器回收
bean的依赖注入
UserService和UserDao都在Spring容器中,而最终程序直接使用UserService,所以可以在Spring容器中,将UserDao设置在UserService.
依赖注入(Dependency Injection)实Spring框架核心IOC的具体实现,在编写程序时,IOC解耦只能降低依赖关系,如,业务层仍调用持久层方法,只是使用spring后,就是利用框架把持久层对象传入业务层
Bean的依赖注入方式
构造方法
1.给实例化对象创建有参构造方法
2.构造方法注入:
<bean id="userDao" class="dao.impl.UserDaoImpl"/>
<bean id="userService" class="service.impl.UserServiceImpl"> <constructor-arg name="userDao" ref="userDao"></constructor-arg>
</bean>
### set方法
在UserServiceImpl中添加UserDao方法
```java
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void save() {
userDao.save();
}
}
set注入配置
<bean id="userDao" class="dao.impl.UserDaoImpl"/>
<bean id="userService" class="service.impl.UserServiceImpl"> <property name="userDao" ref="userDao"/>
</bean>
简化的set注入配置
<!--引入p命名空间-->
xmlns:p="http://www.springframework.org/schema/p"
<!--修改注入方式-->
<bean id="userService" class="service.impl.UserServiceImpl" p:userDao-ref="userDao"/>
## Bean的依赖注入的数据类型
### 普通数据类型
```xml
<bean id="userDao" class="dao.impl.UserDaoImpl"> <property name="company" value="传智播客"></property> <property name="age" value="15"></property>
</bean>
集合数据类型的注入
List型:
<bean id="userDao" class="dao.impl.UserDaoImpl">
<property name="strList">
<list>
<value>aaa</value>
<value>bbb</value>
<value>ccc</value>
</list>
</property>
</bean>
Map<String,User>型:
<bean id="u1" class="com.User"/>
<bean id="u2" class="com.User"/>
<bean id="userDao" class="dao.impl.UserDaoImpl">
<property name="userMap">
<map>
<entry key="user1" value-ref="u1"/>
<entry key="user2" value-ref="u2"/>
</map>
</property>
</bean>
前一部分的key值必须等于后一部分id
<bean id="user1" class="Dao.Impl.User">
<property name="name" value="張三"></property>
<property name="age" value="20"></property>
</bean>
<bean id="user2" class="Dao.Impl.User">
<property name="name" value="李四"></property>
<property name="age" value="19"></property>
</bean>
Properties:
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl">
<property name="properties">
<props>
<prop key="p1">aaa</prop>
<prop key="p2">bbb</prop>
<prop key="p3">ccc</prop>
</props>
</property>
</bean>
Spring的主要配置
标签:id属性,class属性,scope属性
标签:name属性(属性名称),value属性(注入普通的属性值),ref属性(注入对象引用值)
标签,
标签:导入其他的Spring的分文件
ApplicationContext的继承体系
applicationContext:接口类型,代表应用上下文,可以通过其实例获得Spring容器中的Bean对象
它的三个实现类:
- ClassPathXMLApplicationContext:从类的根路径下加载配置文件,较为推荐
- FileSystemXmlApplicationContext:它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置
- AnnotationConfigApplicationContext:当使用注解配置容器对象时,需要使用此类来创建 spring 容器,它用来读取注解
创建bean实例对象时常用语句:
ApplicationContext app = new ClasspathXmlApplicationContext("xml文件")
app.getBean("id")
app.getBean(Class)
学习内容来自于B站,黑马程序员
更多推荐
所有评论(0)