学习SSM框架整合(Spring学习)
提示:参考学习书籍:《ssm从零开始学》
前言
一、Spring及基础配置
Spring 就是一个免费开源框架,为了简化系统设计。

jar包所在位置:

commons-logging-1.2.jar—第三方j依赖包
spring-?-?—spring的核心
二、Spring的基础IOC和DI
1.IOC(控制反转)
详细介绍(讲解):https://www.cnblogs.com/blknemo/p/13453710.html
2.DI(依赖注入)
依赖注入的作用是在使用Spring框架创建对象时,动态地将其依赖的对象注入到Bean主键中包括:
- 设值注入【属性setter()方法注入】
通过调用无参构造器或无参静态工厂方法实例化Bean后调用该Bean中的setter()方法。 - 构造方法注入
基于构造方法的依赖注入通过调用带参数的构造方法来实现。每个参数代表一个依赖。
该处使用的url网络请求的数据。
属性setter()方法注入,实现依赖注入
代码演示:
下面展示一些 UserDao接口。
package com.ssm.ioc_di;
public interface UserDao {
public void login();
}
UserDaoImpl类。
//UserDaoImpl类,实现UserDao接口
package com.ssm.ioc_di;
public class UserDaoImpl implements UserDao{
public void login() {
// TODO Auto-generated method stub
System.out.println("userdao");
}
}
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
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!--在Spring容器中创建了一个id为userDao的Bean实例,class属性用于指定需求实例化Bean的类-->
<bean id="userDao" class="com.ssm.ioc_di.UserDaoImpl"/>
</beans>
测试类IoC类。
// 测试类
package com.ssm.ioc_di;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class IoC {
public static void main(String[] args){
//加载配置文件
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("applicationContext.xml");
//通过容器获得userDao实例
UserDao userDao=(UserDao) applicationContext.getBean("userDao");
//调用userDao中的login()方法
userDao.login();
}
}
运行结果。
三月 18, 2022 4:27:07 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@176fe71: startup date [Fri Mar 18 16:27:07 CST 2022]; root of context hierarchy
三月 18, 2022 4:27:08 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [applicationContext.xml]
userdao
UserService接口。
package com.ssm.ioc_di;
public interface UserService {
public void login();
}
UserServiceImpl类。
package com.ssm.ioc_di;
public class UserServiceImpl implements UserService{
//声明UserDao属性
private UserDao userDao;
//添加UserDao属性的setter()方法,实现注入依赖
public void setUserDao(UserDao userDao){
this.userDao=userDao;
}
//实现userService接口的方法
public void login() {
//调用login()并输出
this.userDao.login();
System.out.println("userservice");
}
}
applicationContext.xml添加一个id为userService的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
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
<!--在Spring容器中创建了一个id为userDao的Bean实例,class属性用于指定需求实例化Bean的类-->
<bean id="userDao" class="com.ssm.ioc_di.UserDaoImpl"/>
<!-- 添加一个id为userService的Bean -->
<bean id="userService" class="com.ssm.ioc_di.UserServiceImpl" >
<!-- 将userDao的bean注入到userService -->
<property name="userDao" ref="userDao" />
</bean>
</beans>
DI测试类
package com.ssm.ioc_di;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DI {
public static void main(String[] args) {
//加载配置文件
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
//通过容器,获取userService
UserService userService=(UserService)applicationContext.getBean("userService");
//调用userService中的login方法
userService.login();
}
}
下面展示一些 运行结果。
三月 18, 2022 4:38:46 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@176fe71: startup date [Fri Mar 18 16:38:46 CST 2022]; root of context hierarchy
三月 18, 2022 4:38:46 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [applicationContext.xml]
userdao
userservice

1697

被折叠的 条评论
为什么被折叠?



