Spring配置入门案例(配置文件方式)
来源:互联网 发布:淘宝网为什么打不开了 编辑:程序博客网 时间:2024/06/18 00:21
1. IOC(控制反转)
什么是IOC
- ioc控制反转,把对象的创建交给spring管理
- ioc操作两部分
(1)ioc的配置文件方式
(2)ioc的注解方法
ioc底层原理
ioc底层原理使用技术
(1)xml配置文件
(2)dom4j解析xml
(3)工厂设计模式
(4)反射原理
第一步:创建xml文件,配置要创建的对象
<bean id="user" class="cn.wang.ioc.User">
第二步:创建工厂类,使用dom4j解析配置文件,反射创建对象
//1.使用dom4j解析xml文件//根据id值user,得到id值对应的class属性值String classValue="class属性值";//2.使用反射创建对象Class clazz=Class.forName(classValue);//创建对象User user=clazz.newInstance();return user
ioc入门案例
第一步:导入jar包
做spring最基本功能是,导入Beans,Core,Context,SpEL四个核心jar包即可
第二步:创建类,在类里创建方法
public class User{ public void add(){ System.out.println("add()"); }}
第三步:创建spring配置文件,配置创建类
(1) spring的核心配置文件的名称和位置是不固定的,建议放在src目录下,官方建议文件名:applicationContext.xml
(2)引入schema约束
<?xml version="1.0"?><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">
(3) 配置创建类
<bean id="user" class="cn.wang.ioc.User"></bean>
第四步:测试对象的创建
public class TestIoc { @Test public void testPerson() { // 1.加载Spring配置文件 ApplicationContext context = new ClassPathXmlApplicationContext( "bean1.xml"); // 2.得到配置文件创建的对象 Person person = (Person) context.getBean("person"); System.out.println(person); }}
spring的bean管理(xml方式)
bean实例化方式
- 在spring里通过配置文件创建对象
- bean实例化的三种方式
第一种:使用类的无参构造方法创建(前提有无参构造)
<bean id="user" class="cn.wang.ioc.User"></bean>
第二种:使用静态工厂创建对象
(1)创建静态工厂类
//Person的静态工厂public class PersonFactory { // 静态方法,返回Person对象 public static Person getInstance() { return new Person(); }}
(2)配置文件配置静态工厂
<bean id="person" class="cn.wang.property.PersonFactory" factory-method="getInstance"></bean>
第三种:使用实例工厂创建对象
(1)创建实例工厂类
//Person的实例工厂public class PersonFactory { public Person getInstance() { return new Person(); }}
(2)配置文件配置实例工厂
<bean id="personFactory" class="cn.wang.property.PersonFactory"></bean><bean id="person" factory-bean="personFactory"factory-method="getInstance"></bean>
bean标签常用属性
1. id属性
id属性址名称任意命名
id属性值不包含特殊符号
根据id得到配置对象
2. class属性
创建对象所在类的全路径
3. name属性
功能与id相同,但是可以包含特殊符号
4. scope属性
(1) singtleton:默认值,单例
Person p1 = (Person) context.getBean("person");Person p2 = (Person) context.getBean("person");
多次调用返回同一对象
(2)prototype:多例,多次调用返回不同对象
(3)request:创建对象放到request域中
(4)session:创建对象方法哦session域中
(5)globalSession:创建对象放到globalSession域中
2. DI(依赖注入)
什么是DI
- 创建对象时,向类里的属性设置值
- 属性注入的三种方式
(1)使用set方法注入
(2)使用有参构造注入
(3)使用接口注入 - spring框架中支持前两种方式
(1)使用set方法注入
<bean id="person" class="cn.wang.property.Person"><!--set方法注入属性 name属性值:类中定义的属性名称 value属性值:设置具体的值--> <property name="pname" value="zs"></property></bean>
(2)使用有参构造注入
public class Person { private String pname; public void setPname(String pname) { this.pname = pname; }}
<bean id="user" class="cn.wang.ioc.User"> <!--构造方法注入属性--> <constructor-arg name="pname" value="Tony"></constructor-arg> </bean>
(3)注入对象类型属性
1. 创建service和dao类
在service中得到dao
2. 具体实现过程
在service中把dao作为属性
生成dao的set方法
public class UserService { // 1.定义UserDao类型属性 private UserDao userDao; // 2.生成set方法 public void setUserDao(UserDao userDao) { this.userDao = userDao; }}
- 配置文件注入关系
<bean id="userDao" class="cn.wang.property.UserDao"> <property name="name" value="Tom"></property> </bean> <bean id="userService" class="cn.wang.property.UserService"> <!--name属性值:UserService类里的属性名称--> <!--ref属性:UserDao类配置bean标签中的id值--> <property name="userDao" ref="userDao"></property> </bean>
(4)p名称空间注入
(5)注入复杂类型属性
<!-- 注入复杂类型属性值 --> <!-- String pname; String[] arrs; List<String> list; Map<String, String> map; Properties props; --> <bean id="person" class="cn.wang.property.Person"> <property name="pname" value="zs"></property> <property name="arrs"> <list> <value>aaa</value> <value>bbb</value> <value>ccc</value> </list> </property> <property name="list"> <list> <value>qqq</value> <value>www</value> <value>eee</value> </list> </property> <property name="map"> <map> <entry key="001" value="Tom"></entry> <entry key="002" value="Amy"></entry> <entry key="003" value="Jim"></entry> </map> </property> <property name="props"> <props> <prop key="username">admin</prop> <prop key="passwprd">admin</prop> </props> </property> </bean>
3. IOC和DI区别
(1)IOC控制反转,把对象创建交给spring配置
(2)DI依赖注入,向类里面属性注入值
(3)关系,依赖注入不能单独存在,需要在IOC基础上完成操作
- Spring配置入门案例(配置文件方式)
- Spring配置入门案例(注解方式 )
- Spring入门案例 注解方式配置(一)
- spring整合mybatis完整案例(配置文件方式)
- spring配置quartz入门案例
- spring 配置事务---配置文件方式
- Spring 入门 上 (xml 配置方式)
- Spring-注解的方式配置AOP-案例
- Spring开发环境配置以及入门案例
- Spring ApplicationContext配置文件的路径配置方式
- Hibernate配置(配置文件方式)
- spring入门--spring入门案例
- SpringMVC入门案例——注解配置方式
- Spring 基于XML配置的IOC入门案例
- Spring 基于XML配置的AOP入门案例
- Spring MVC入门案例(1)
- Spring MVC入门案例(2)
- Spring MVC入门案例(1)
- 几种Java新建对象的方法
- 10014---大型网站架构之分布式消息队列
- css
- 项目IAP代码更新流程
- 解决ubuntu下访问windows磁盘错误
- Spring配置入门案例(配置文件方式)
- msm 关机充电开启与关闭
- 用C++实现链表版本通讯录
- leetcode题解-82. Remove Duplicates from Sorted List II && 445. Add Two Numbers II
- 克隆二叉树
- noip2010 引水入城 bfs+贪心
- hibernate自动生成建表
- 开发可运行于Docker上的Spring Boot应用
- 文本多行最后一行溢出隐藏显示省略号