Spring依赖注入
1. 基于set方法注入
<bean class="com.jixian.spring.entity.Book">
<property name="bname" value="计算机百科全书"/>
<property name="author" value="jixian"/>
</bean>
2. 基于构造器注入
<bean class="com.jixian.spring.entity.Book">
<constructor-arg name="bname" value="计算机网络"/>
<constructor-arg name="author" value="jixian"/>
</bean>
3. 为对象类型赋值
3.1 外部bean
<bean id="department" class="com.jixian.spring.entity.Department"> <property name="dname" value="开发部"/> </bean> <bean id="employee" class="com.jixian.spring.entity.Employee"> <property name="ename" value="jixian"/> <property name="age" value="25"/> <property name="department" ref="department"/> </bean>
3.2 内部bean
<bean id="employee" class="com.jixian.spring.entity.Employee"> <property name="ename" value="jixian"/> <property name="age" value="25"/> <property name="department"> <bean id="department" class="com.jixian.spring.entity.Department"> <property name="dname" value="开发部"/> </bean> </property> </bean>
3.3 级联属性赋值
<bean id="department" class="com.jixian.spring.entity.Department"/> <bean id="employee" class="com.jixian.spring.entity.Employee"> <property name="ename" value="jixian"/> <property name="age" value="20"/> <property name="department" ref="department"/> <property name="department.dname" value="测试部" /> </bean>
3.4 数组类型赋值
<bean id="department" class="com.jixian.spring.entity.Department"> <property name="dname" value="技术部"/> </bean> <bean id="employee" class="com.jixian.spring.entity.Employee"> <property name="ename" value="jixian"/> <property name="age" value="20"/> <property name="department" ref="department"/> <property name="skills"> <array> <value>C++</value> <value>C</value> <value>Java</value> <value>Python</value> <value>Javascript</value> </array> </property> </bean>
3.5 List集合类型赋值
<bean id="department" class="com.jixian.spring.entity.Department"> <property name="dname" value="技术部"/> <property name="employeeList"> <list> <ref bean="employee1"/> <ref bean="employee2"/> </list> </property> </bean> <bean id="employee1" class="com.jixian.spring.entity.Employee"> <property name="ename" value="jixian"/> <property name="age" value="20"/> </bean> <bean id="employee2" class="com.jixian.spring.entity.Employee"> <property name="ename" value="jack"/> <property name="age" value="21"/> </bean>
3.6 Map集合赋值
<bean id="teacher" class="com.jixian.spring.entity.Teacher"> <property name="tid" value="10254"/> <property name="tname" value="李老师"/> </bean> <bean id="student" class="com.jixian.spring.entity.Student"> <property name="sid" value="171525"/> <property name="sname" value="王同学"/> <property name="teacherMap"> <map> <entry key="10012" value-ref="teacher"/> </map> </property> </bean>
3.7 引用集合类型赋值
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
<bean id="lesson1" class="com.jixian.spring.entity.Lesson"> <property name="lname" value="计算机操作系统"/> </bean> <bean id="lesson2" class="com.jixian.spring.entity.Lesson"> <property name="lname" value="计算机组成原理"/> </bean> <bean id="lesson3" class="com.jixian.spring.entity.Lesson"> <property name="lname" value="计算机网络"/> </bean> <bean id="lesson4" class="com.jixian.spring.entity.Lesson"> <property name="lname" value="数据结构"/> </bean> <bean id="teacher1" class="com.jixian.spring.entity.Teacher"> <property name="tid" value="1011"/> <property name="tname" value="张老师"/> </bean> <bean id="teacher2" class="com.jixian.spring.entity.Teacher"> <property name="tid" value="1021"/> <property name="tname" value="王老师"/> </bean> <bean id="student" class="com.jixian.spring.entity.Student"> <property name="sid" value="1001126"/> <property name="sname" value="jixian"/> <property name="teacherMap" ref="map"/> <property name="lessonList" ref="list"/> </bean> <util:list id="list"> <ref bean="lesson1"/> <ref bean="lesson2"/> <ref bean="lesson3"/> <ref bean="lesson4"/> </util:list> <util:map id="map"> <entry key="1001" value-ref="teacher1"/> <entry key="1002" value-ref="teacher2"/> </util:map>
3.8 p命名空间
xmlns:p="http://www.springframework.org/schema/p"
<bean id="lesson1" class="com.jixian.spring.entity.Lesson"> <property name="lname" value="计算机操作系统"/> </bean> <bean id="lesson2" class="com.jixian.spring.entity.Lesson"> <property name="lname" value="计算机组成原理"/> </bean> <bean id="lesson3" class="com.jixian.spring.entity.Lesson"> <property name="lname" value="计算机网络"/> </bean> <bean id="lesson4" class="com.jixian.spring.entity.Lesson"> <property name="lname" value="数据结构"/> </bean> <bean id="teacher1" class="com.jixian.spring.entity.Teacher"> <property name="tid" value="1011"/> <property name="tname" value="张老师"/> </bean> <bean id="teacher2" class="com.jixian.spring.entity.Teacher"> <property name="tid" value="1021"/> <property name="tname" value="王老师"/> </bean> <bean id="student" class="com.jixian.spring.entity.Student" p:lessonList-ref="list" p:teacherMap-ref="map" p:sid="10020" p:sname="jixian"> </bean> <util:list id="list"> <ref bean="lesson1"/> <ref bean="lesson2"/> <ref bean="lesson3"/> <ref bean="lesson4"/> </util:list> <util:map id="map"> <entry key="1001" value-ref="teacher1"/> <entry key="1002" value-ref="teacher2"/> </util:map>
3.9 引入外部属性文件
3.9.1 加入依赖
<!-- MySQL驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency> <!-- 数据源 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.15</version> </dependency>
3.9.2 创建jdbc.properties
jdbc.user=root jdbc.password=atguigu jdbc.url=jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC jdbc.driver=com.mysql.cj.jdbc.Driver
3.9.3 引入context 名称空间
xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
3.9.4 配置XML
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean>