spring 官网链接:Spring
spring 官网源码下载链接:Spring Framework
GitHub 下载地址:Spring源码 GitHub 下载地址
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>5.2.0.RELEASEversion>
dependency>
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-jdbcartifactId>
<version>5.2.0.RELEASEversion>
dependency>
正常编写一个业务需要
UserDao接口
UserDaolmpl实现类
UserService 业务接口
UserServicelmpl 业务实现类
例如下面所示
package com.qiaoer.service;
import com.qiaoer.dao.UserDao;
import com.qiaoer.dao.impl.UserDaoImplMySql;
public class UserServiceImpl implements UserSerivce{
private UserDao userDao=new UserDaoImplMySql();
@Override
public void getAllUser() {
userDao.getAllUser();
}
}
package com.qiaoer.service;
import com.qiaoer.dao.UserDao;
import com.qiaoer.dao.impl.UserDaoImplMySql;
import com.qiaoer.dao.impl.UserDaoImplOracle;
public class UserServiceImpl implements UserSerivce{
private UserDao userDao=new UserDaoImplOracle();
@Override
public void getAllUser() {
userDao.getAllUser();
}
}
package com.qiaoer.service;
import com.qiaoer.dao.UserDao;
import com.qiaoer.dao.impl.UserDaoImplMySql;
import com.qiaoer.dao.impl.UserDaoImplOracle;
public class UserServiceImpl implements UserSerivce{
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void getAllUser() {
userDao.getAllUser();
}
}
<dependency>
<groupId>org.springframeworkgroupId>
<artifactId>spring-webmvcartifactId>
<version>6.0.9version>
dependency>
在 spring 官网找到 ioc容器的元数据
**在官网的 ico容器概述内可以找到 网站:Container Overview :: Spring Framework **
网址: https://docs.spring.io/spring-framework/reference/core/beans/basics.html
进入官网下滑找到
标签的内容复制
<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 id="..." class="...">
bean>
<bean id="..." class="...">
bean>
beans>
标签实际上就类似于 new 了一个对象
标签的 属性 id 代表对象的对象吗
标签的属性 class 则代表引用的哪个类,要加上包名
<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 id="hello" class="com.qiaoer.entity.Hello">
bean>
beans>
ApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
getBean(String id)
方法可以获取具体的对象,括号内的参数对应 xml 文件当中为
标签的 id 属性import com.qiaoer.entity.Hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Hello hello = (Hello)classPathXmlApplicationContext.getBean("hello");
System.out.println(hello);
}
}
标签内的 子标签
来赋值
标签语法 <property name="属性名" value="具体值"/>
标签的 name 属性为对象中要赋值的属性名,value 属性是为属性赋的值
赋值必须在类中为属性写有对应的 get 和 set 方法来赋值和取值
<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 id="hello" class="com.qiaoer.entity.Hello">
<property name="name" value="你好"/>
bean>
beans>
import com.qiaoer.entity.Hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Hello hello = (Hello)classPathXmlApplicationContext.getBean("hello");
System.out.println(hello.getName());
}
}
标签的 ref 属性 而不是 value 属性
<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 id="helloSpring" class="com.qiaoer.entity.HelloSpring"/>
<bean id="hello" class="com.qiaoer.entity.Hello">
<property name="helloSpring" ref="helloSpring"/>
bean>
beans>
标签中的子标签
来给构造器赋值package com.qiaoer.entity;
public class Hello {
private String name;
private int age;
public Hello(String name, int age) {
this.name = name;
this.age = age;
System.out.println("name:"+this.name);
System.out.println("age:"+this.age);
}
public Hello(String name) {
this.name = name;
System.out.println("name:"+this.name);
}
public Hello() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
1、使用下标创建
<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 id="hello" class="com.qiaoer.entity.Hello">
<constructor-arg index="0" value="巧克力"/>
<constructor-arg index="1" value="17"/>
bean>
beans>
import com.qiaoer.entity.Hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Hello hello = (Hello)classPathXmlApplicationContext.getBean("hello");
}
}
2、使用类型创建
<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 id="hello" class="com.qiaoer.entity.Hello">
<constructor-arg type="int" value="17"/>
<constructor-arg type="java.lang.String" value="巧克力"/>
bean>
beans>
3、参数名创建
<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 id="hello" class="com.qiaoer.entity.Hello">
<constructor-arg name="age" value="17"/>
<constructor-arg name="name" value="巧克力"/>
bean>
beans>
a/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”>
- 使用参数名创建也不需要注意顺序
- 直接使用参数的名字便可赋值,推荐使用