**
从Spring Framework 5.1开始,Spring需要JDK 8+ (Java SE 8+),并提供对JDK 11 LTS的开箱即用支持。建议将Java SE 8 update 60作为Java 8的最低补丁版本,但通常建议使用最新的补丁版本。
spring分为许多模块,应用可以选择他们需要的模块。它的核心模块是corecontainer(也就是核心容器),包括配置模块和DI依赖注入。除此之外,Spring框架还为不同的应用程序体系结构提供基础支持,包括消息传递、事务数据和持久性以及web。
UserDao接口
UserDaoImpl实现类
UserService业务接口
UserServiceImpl业务实习类
基于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 id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- more bean definitions go here -->
</beans>
在实现类中:
private UserDao userDao = new UserDaoMysqlImpl();
在测试实现类中:
UserService userService = new UserServiceImpl();
userService.getUser();
在我们之前的业务中,用户的需求可能影响我们原来的代码,我们需要根据用户的需求去修改原代码!
如果程序代码量十分大,修改一次的成本代价十分昂贵!
我们使用一个Set接口实现
在实现类中:
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
在测试实习类中:
((UserServiceImpl) userService).setUserDao(new UserDaoMysqlImpl());
userService.getUser();
}
之前,程序是主动创建对象!控制权在程序员手上。
使用了set注入后,程序不再具有主动性,而是变成了被动的接受对象!
这种思想,从本质上解决了问题,我们程序员不再去管理对象的创建了。系统的耦合性大大降低;可以更加专注在业务的实现上!这是IOC的原型!
在使用配置文件来创建对象时,默认的是无参构造,在实体类中,无参构造一般不会写出来。只有在是实体类中有了有参构造,无参构造猜会无效。
第一种:
下标赋值(index)
<bean id="user" class="com.liao.pojo.User">
<constructor-arg index="0" value="自己赋值"></constructor-arg>
</bean>
第二种:
类型(type,这里不建议使用这种方式)
<bean id="user" class="com.liao.pojo.User">
<constructor-arg
type="java.lang.String" value="liaopenghui">
</constructor-arg>
</bean>
第三种:
参数名(name)
<bean id="user" class="com.liao.pojo.User">
<constructor-arg name="name" value="自己赋值"></constructor-arg>
</bean>
总结:在配置文件加载的时候,容器中管理的对象就已经初始化了!
<bean id="user" class="com.liao.pojo.User">
<constructor-arg name="name" value="自己赋值"></constructor-arg>
</bean>
如果添加了别名,我们也可以使用别名获取到这个对象
<alias name="user" alias="user2"></alias>
<bean id="userT" class="com.liao.pojo.UserT" name="userT2 userT3">
<property name="name" value="liaopenghui"></property>
</bean>
import,一般用于团队开发使用,它可以将多个配置文件,导入合并为一个。
假设,现在项目中有多个人开发,这三个人负责不同的类开发,不同的类需要注册在不同的bean中,我们可以利用import, 将所有人的beans.xml合并为一个总的!
列如有这么几个xml配置文件:
beans1.xml
beans2.xml
beans3.xml
将这三个配置文件同时导入一个总的配置文件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">
<import resource="beans1.xml"></import>
<import resource="beans2.xml"></import>
<import resource="beans3.xml"></import>
</beans>
使用的时候,直接使用总的配置就可以了。
想要详细了解更多Spring,这里建议大家去官方文档学习。
Sping5后续学习会相继发布,这是小白第一次些文章,我会继续努力加油,写出优秀的文章。
本文实例讲述了AJAX+Servlet实现的数据处理显示功能。分享给大家供大家参考,具...
来源:DeepenStudy 漏洞文件:js.asp % Dimoblog setoblog=newclass_sys oblog.a...
idea官方推送了2020.2.4版本的更新,那么大家最关心的问题来了,之前激活idea202...
本文转载自微信公众号「SH的全栈笔记」,作者SH。转载本文请联系SH的全栈笔记公...
问题:我们在做flex的开发中,如果用到别人搭建好的框架,而别人的server名称往...
CKeditor,以前叫FCKeditor,已经使用过好多年了,功能自然没的说。最近升级到3....
在Flash Player 10.1及以上版本中,adobe新增了全局错误处理程序UncaughtErrorEv...
本文转载自微信公众号「SQL数据库」,作者丶平凡世界 。转载本文请联系开发公众...
前言 项目开发中不管是前台还是后台都会遇到烦人的null,数据库表中字段允许空值...
大家好,我是狂聊君。 今天来聊一聊 Mysql 缓存池原理。 提纲附上,话不多说,直...