我们理解了IOC的基本思想,我们现在来看下Spring的应用:
第一个Spring程序
在普通三层架构的基础上,将程序修改为 Spring框架程序
dao
interface
public interface UserDao {
void getUser();
}
impl
public class UserDaoImpl implements UserDao {
@Override
public void getUser() {
System.out.println("你好");
}
}
service
interface
public interface UserService {
void getUser();
}
impl
public class UserServiceImpl implements UserService{
private UserDao userDao;
// 利用set实现
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void getUser() {
userDao.getUser();
}
}
test
public class Mytest {
public static void main(String[] args) {
UserServiceImpl userService = new UserServiceImpl();
userService.setUserDao(new UserDaoImpl());
userService.getUser();
}
}
dao追加impl
public class UserDaoOneImpl implements UserDao{
@Override
public void getUser() {
System.out.println("你好One");
}
}
在父工程导入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
创建Spring配置文件
Spring配置文件的文件名可以随意,但Spring建议的名称为applicationContext.xml。这里我们命名为beans.xml并放在resource目录下
<?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">
<!--bean就是java对象 , 由Spring创建和管理-->
<bean id="One" class="com.huang.dao.UserDaoOneImpl"/>
<bean id="ServiceImpl" class="com.huang.service.UserServiceImpl">
<!--注意: 这里的name并不是属性 , 而是set方法后面的那部分 , 首字母小写-->
<!--引用另外一个bean , 不是用value 而是用 ref-->
<property name="userDao" ref="One"/>
</bean>
</beans>
springtest
import com.huang.pojo.Hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author 86131
* date 2021/10/3 08:58:06
* @description
*/
public class FirstTest {
public static void main(String[] args) {
//解析beans.xml文件 , 生成管理相应的Bean对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//getBean : 参数即为spring配置文件中bean的id .
Hello hello = (Hello) context.getBean("hello");
hello.show();
}
}
spring配置文件一览
Spring 配置文件支持两种格式,即 XML 文件格式和 Properties 文件格式。
- Properties 配置文件主要以 key-value 键值对的形式存在,只能赋值,不能进行其他操作,适用于简单的属性配置。
- XML 配置文件是树形结构,相对于 Properties 文件来说更加灵活。XML配置文件结构清晰,但是内容比较繁琐,适用于大型复杂的项目。
常用
<bean />:用于定义一个实例对象。一个实例对应一个 bean元素。
id:该属性是 Bean 实例的唯一标识,程序通过 id 属性访问 Bean,Bean 与 Bean 间的依赖关系也是通过 id 属性关联的。
如果没有配置id,name就是默认标识符
如果配置id,又配置了name,那么name是别名
name可以设置多个别名,可以用逗号,分号,空格隔开
如果不配置id和name,可以根据applicationContext.getBean(.class)获取对象;
class:指定该 Bean 所属的类,注意这里只能是类,不能是接口。全限定名=包名+类名
了解
alias 设置别名 , 为bean设置别名 , 可以设置多个别名
<!--设置别名:在获取Bean的时候可以使用别名获取-->
<alias name="userT" alias="userNew"/>
团队的合作通过import来实现 .
<import resource="{path}/beans.xml"/>