技术小白,以下内容是对每日所学知识简单的总结汇总,如有错误,还望大家包含,也可留言指正,感谢!
浅谈对Spring体系结构的理解 1、Core ContainerCore Container 核心容器。Spring中,对象的创建都需要借助这些容器来实现,初学者可以首先展开对这部分内容的学习。
2、Data Access / IntegrationData Access 数据访问;Data Integration 数据集成。很明显,该部分内容涉及到对数据的处理。比如:数据库连接 *** 作;常用的CRUD增删改查 *** 作等。当前比较流行的有Mybatis,Mybatis-Plus等。
该部分需要着重学习Transactions事务相关内容。
AOP 面向切面编程,在此提出了“切面”的思想。Aspects是AOP思想的实现。具体内容可关注博主之后的文章。
4、Web该部分涉及Web开发所需要的模块。
5、TestTest测试,测试是项目开发工程中非常常用且必要的内容。Spring也定义了许多和测试相关的方法、注解等,如:@Test注解等。
具体系统结构图见下图。
- IOC(Inversion of Control)控制反转。
- 当创建对象时,不再采用手动new的方式创建,而是将对象的创建控制权转移到“外部”进行。
- 上述的“外部”其实就是IoC容器,也常称Spring容器。
- 手动new的方式,代码的耦合性较高,不利于之后的修改维护工作。
- IoC容器负责对象的创建、初始化、管理工作。
- 被管理的对象在IoC容器中称为Bean。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.16</version>
</dependency>
记得及时刷新maven,将需要的包加载进去
2、定义需要管理的类或接口以创建接口BeanDao和其实现类BeanDaoImpl为例。Dao层是我们写项目时常用的数据访问层。
1)BeanDao接口public interface BeanDao {
public void save();
}
2)BeanDaoImpl实现类
public class BeanDaoImpl implements BeanDao {
public void save() {
System.out.println("beanDao save...");
}
}
3、创建配置文件applicationContext.xml
<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 id="beanDao" class="dao.impl.BeanDaoImpl"/>
beans>
4、编写Test代码测试
public class App {
public static void main(String[] args) {
// 加载配置文件,获得上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 调用getBean()方法获得bean
BeanDao beanDao = (BeanDao) context.getBean("beanDao");
// 调用save()方法
beanDao.save();
}
}
浅谈对DI的理解
- DI(Dependency Injection)依赖注入。
- 如果两个bean之间有依赖关系,那么建立依赖的过程就是DI。
以BeanService和BeanDao间的依赖关系为例。
Dao层是数据访问层,Service层是业务逻辑层,通常业务逻辑层会调用数据访问层定义的方法。
public interface BeanService {
public void save();
}
2)BeanServiceImpl实现类
public class BeanServiceImpl implements BeanService {
// 在没有使用IOC之前,通常我们都是通过下述方式定义,该方式使得代码的耦合性较高,已经渐渐的被淘汰
// private BeanDao beanDao = new BeanDaoImpl();
// 推荐使用下述方式定义,只声明并为进行实际的new *** 作,通过IOC容器实现相应的依赖注入 *** 作
private BeanDao beanDao;
public void save() {
System.out.println(" bean service save...");
beanDao.save();
}
public void setBeanDao(BeanDao beanDao) {
this.beanDao = beanDao;
}
}
2、在applicationContext.xml文件中配置beanService对象,并做好依赖注入工作
<bean id="beanService" class="service.impl.BeanServiceImpl">
<property name="beanDao" ref="beanDao">property>
bean>
3、编写代码测试
public class App {
public static void main(String[] args) {
// 加载配置文件,获得上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 调用getBean()方法获得bean
BeanService beanService = (BeanService) context.getBean("beanService");
// 调用save()方法
beanService.save();
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)