1. Spring框架:
- Spring框架的核心
Spring框架的核心: https://blog.youkuaiyun.com/qq_41029923/article/details/84027872 )
IOC控制反转(IOC容器装配bean): https://blog.youkuaiyun.com/qq_41029923/article/details/84032736 )
DI依赖注入 __1(对象依赖关系): https://blog.youkuaiyun.com/qq_41029923/article/details/84069245 )
DI依赖注入 __2(注解方式): https://blog.youkuaiyun.com/qq_41029923/article/details/84103960 )
Spring WEB_Web 项目中使用 Spring
Web 项目中使用 Spring: https://mp.youkuaiyun.com/mdeditor/84107977# ) - 代理模式、AOP、JDBC支持
(AOP的底层实现: https://blog.youkuaiyun.com/qq_41029923/article/details/84108600 )
(Spring AOP开发: https://blog.youkuaiyun.com/qq_41029923/article/details/84230164 )
(使用 AspectJ实现 AOP: https://blog.youkuaiyun.com/qq_41029923/article/details/84250237 )
(Spring JDBC Template的使用: https://blog.youkuaiyun.com/qq_41029923/article/details/84291336 ) - Spring事务管理
(网址: https://blog.youkuaiyun.com/qq_41029923/article/details/84306831 ) - Spring与Mybatis整合
(网址: https://blog.youkuaiyun.com/qq_41029923/article/details/84321666 )
传统开发模式:
基于的项目框架结构: entity / dao / service / action
1.实体类
class User{
}
2.Dao
class UserDao{
访问数据库
}
3.Service
class UserService{
UserDao userDao=new UserDao();
}
4.Service
class UserAction{
//法一:由自己new出来
//UserService userService=new UserService();
//法二:由别人(外部容器)创建,(再通过Set方法set进来)
UserService userService;
public void setUserService(UserService userService){
this.userService=userService();
}
}
用户访问:user.action——》Tomcat(服务器创建Action、Service、Dao)
问题:
1.对象的创建能否写死?
2.对象创建的细节,对象的个数?创建的时间?
3.对象之间依赖关系?
总结:
Spring就是解决以上问题,对象的创建以及对象依赖关系的管理。
Spring框架的学习:
- 组件/框架设计:
① 侵入式:对现有的类的结果有影响,需要继承类或实现接口;
② 非侵入式:对现有的类的结果没有影响; - 控制反转(IOC):
对象的创建交给外部容器完成叫控制反转; - 依赖注入(DI):
处理对象之间的依赖关系; - 控制反转(IOC)和依赖注入(DI)的区别:
控制反转:解决对象的创建问题;
依赖注入:在创建完对象之后,对象之间关系的处理(set方法注入); - AOP:面向切面编程
概述: Spring框架是解决对象的创建以及对象之间的依赖关系的一种框架; 可以与其他框架一起使用; 作用:整合;
Spring提供了一站式的解决方案:
1. Spring AOP:面向切面编程
2. Spring Core:Spring 的核心功能,IOC容器
3. Spring DAO:对于 JDBC的支持
4. Spring EE:对 JavaEE其他模块支持
5. Spring ORM:对 ORM支持
6. Spring WEB:对 WEB模块支持
Spring快速入门:
- 导入相关 jar包:
spring-beans
spring-context
spring-core
spring-expression
spring-logging(Spring3.x 后,所有的依赖包不被包含,需要时再另行下载) - 核心配置文件:applicationContext.xml
1. applicationContext.xml
(IOC 容器配置:id 表示bean 的标识;class是类的完全限定名)
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<bean id="user" class="com.mdd.User"></bean>
</beans>
2. User.java
public class User{
private int id;
private String name;
set、get();
}
3. Test.java
(以前对象的创建自己 new出来,如下:User user=new User(); 现在把对象的创建交给 Spring的 IOC容器; 下面:先得到 IOC容器,再从容器中获取对象;)
public class Test{
public static void main(String[] args) {
//法一:对象由自己创建
//User user=new User();
//法二:把对象的创建交给Spring的IOC容器
//1.先得到 IOC容器
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
//2.从容器中获取对象
User user=(User)applicationContext.getBean("user");
System.out.println(user);
}
}