如果某一个属性中需要赋值空对象 null对象 而非是”null”———我们可以利用
如果某一个属性中带有特殊字符 String类型
需要利用这个标签来进行操作<![CDATA[xxx]]>
注意:这个标签需要以分层的形式 写在
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="student" class="domain.Student">
<constructor-arg name="sid" value="1" type="java.lang.Integer"></constructor-arg>
<constructor-arg name="sname">
<value><![CDATA[klxh~~]]></value>
</constructor-arg>
<constructor-arg name="ssex" value="女" type="java.lang.String"></constructor-arg>
<constructor-arg name="sage" value="18" type="java.lang.Integer"></constructor-arg>
</bean>
</beans>
我们正常开发中,需要赋值的属性很多时候并不是8大基本类型以及一些原生包装类,而是一些其他对象,可以通过
例如一个房间中有电脑:
Room
package domain;
public class Room {
private String name;//机房房间号 属性
private Computer computer;//机房中有一台电脑 属性 (has a) 聚合 组合 包含
@Override
public String toString() {
return "Room{" +
"name='" + name + '\'' +
", computer=" + computer +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Computer getComputer() {
return computer;
}
public void setComputer(Computer computer) {
this.computer = computer;
}
}
Computer
package domain;
public class Computer {
private String brand;//电脑品牌 ThinkPad
private String name;//电脑型号 S5
private Float price;//电脑价格 8000
public Computer() {
}
public Computer(String brand, String name, Float price) {
this.brand = brand;
this.name = name;
this.price = price;
}
@Override
public String toString() {
return "Computer{" +
"brand='" + brand + '\'' +
", name='" + name + '\'' +
", price=" + price +
'}';
}
public void setBrand(String brand) {
this.brand = brand;
}
public void setName(String name) {
this.name = name;
}
public void setPrice(Float price) {
this.price = price;
}
public String getBrand() {
return brand;
}
public String getName() {
return name;
}
public Float getPrice() {
return price;
}
}
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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="computer" class="domain.Computer">
<constructor-arg name="brand" value="ThinkPad"></constructor-arg>
<constructor-arg name="name" value="s5"></constructor-arg>
<constructor-arg name="price" value="8000"></constructor-arg>
</bean>
<bean name="room" class="domain.Room">
<property name="name" value="001"></property>
<property name="computer" ref="computer"></property>
</bean>
</beans>
如果对象里面的那个属性对象是私有的,不想别其他人访问,我们可以采用内部bean的写法
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="room" class="domain.Room">
<property name="name" value="001"></property>
<property name="computer">
<bean class="domain.Computer">
<constructor-arg name="brand" value="ThinkPad"></constructor-arg>
<constructor-arg name="name" value="s5"></constructor-arg>
<constructor-arg name="price" value="8000"></constructor-arg>
</bean>
</property>
</bean>
</beans>
Controller—-Service—-Dao
StudentController
package controller;
import service.StudentService;
public class StudentController {
private StudentService service;
public StudentController(StudentService service) {
this.service = service;
}
public void login(){
System.out.println("controller层接收请求信息");
//获取请求发送过来的信息
//调用service去处理业务---->
service.login();
//根据service处理的结果 给予响应
System.out.println("controller层给予响应");
}
}
StudentService
package service;
import dao.StudentDao;
public class StudentService {
private StudentDao dao;
public StudentService(StudentDao dao) {
this.dao = dao;
}
public void login(){
//1.方法应该有参数 Controller传递给我的
System.out.println("service层接收请求发来的信息");
//2.做一些业务处理 判断 dao调用查询方法----->
dao.selectOne();
//3.将判断的结果返回
System.out.println("service层处理业务并返回");
}
}
StudentDao
package dao;
import domain.Student;
public class StudentDao {
public Student selectOne(){
//1.方法里面有参数 service层给我的
System.out.println("dao层接收service层传递的信息");
//2.自己写一条Sql语句
System.out.println("执行数据库操作");
//3.调用SqlSession做事就可以了
System.out.println("将查询的结果返回");
return null;
}
}
TestMain
package test;
import controller.StudentController;
import domain.Room;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestMain {
public static void main(String[] args){
//演示Spring的DI
BeanFactory factory=new ClassPathXmlApplicationContext("ApplicationContext.xml");
StudentController controller=(StudentController)factory.getBean("controller") ;
controller.login();
}
}
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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="controller" class="controller.StudentController">
<constructor-arg name="service">
<bean name="service" class="service.StudentService">
<constructor-arg name="dao">
<bean name="dao" class="dao.StudentDao"></bean>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
</beans>
写法二:
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean name="controller" class="controller.StudentController">
<constructor-arg name="service" ref="service"></constructor-arg>
</bean>
<bean name="service" class="service.StudentService">
<constructor-arg name="dao" ref="dao"></constructor-arg>
</bean>
<bean name="dao" class="dao.StudentDao"></bean>
</beans>