网站建设虚拟主机,网址如何注册,华为网站建设费用,自学软件网站开发目录 一、简介
1、什么是Spring#xff1f; 2、Spring框架的核心特性
3、优点
二、IOC容器
介绍 1、获取资源的传统方式
2、控制反转方式获取资源
3、DI
4、IOC容器在Spring中的实现 入门案例
1、创建Maven Module
2、引入依赖 3、创建HelloWorld类 4、在Spring的配…目录 一、简介
1、什么是Spring 2、Spring框架的核心特性
3、优点
二、IOC容器
介绍 1、获取资源的传统方式
2、控制反转方式获取资源
3、DI
4、IOC容器在Spring中的实现 入门案例
1、创建Maven Module
2、引入依赖 3、创建HelloWorld类 4、在Spring的配置文件中配置bean
5、创建测试类测试
6、思路
7、注意
三、基于注解管理Bean
3.1、Bean对象定义及获取
3.2、Bean对象定义
3.3、Bean对象获取
3.4、应用分析
3.5、依赖注入
3.5.1、 Value注解
3.5.2、Autowired注解 一、简介
下载地址
Spring | ProjectsLevel up your Java code and explore what Spring can do for you.https://spring.io/projects
1、什么是Spring Spring是一个开源的Java开发框架它简化了Java应用程序的开发过程提供了一套全面的、一致性的编程模型使得开发者可以更轻松地构建可扩展、可维护的企业级应用程序。 2、Spring框架的核心特性 控制反转IoCSpring通过IoC容器管理对象之间的依赖关系简化了对象之间的耦合。面向切面编程AOPSpring的AOP支持允许开发者在程序运行过程中动态地添加功能例如事务管理、日志记录等。数据访问Spring提供了对多种数据访问技术的支持如JDBC、ORM框架、NoSQL等。事务管理Spring提供了一致的事务管理抽象使得开发者可以在不同的事务管理实现之间切换。MVC框架Spring的MVC框架使得开发者可以轻松地构建Web应用程序。安全性Spring提供了对身份认证和授权的支持帮助开发者构建安全的应用程序。 3、优点 轻量级Spring框架核心库非常轻量通过模块化的设计开发者可以选择所需的模块避免了不必要的依赖。 松耦合Spring框架采用依赖注入DI和面向接口编程的方式使得应用程序各个组件之间的耦合度降低易于维护和测试。 面向切面编程Spring框架支持面向切面编程AOP可以解耦横切关注点如事务管理、日志记录等提高代码的复用性和可维护性。 容器管理Spring框架提供了一个容器IoC容器可以统一管理应用程序中的对象通过配置文件或注解方式管理对象的创建和销毁。 事务管理Spring框架提供了强大的事务管理支持可以通过声明式事务的方式简化事务管理的代码减少样板代码的编写。 灵活性Spring框架提供了丰富的扩展机制可以与其他框架如Hibernate、MyBatis等无缝集成也支持多种数据库连接池、日志等第三方组件的集成。 测试支持Spring框架提供了对单元测试和集成测试的强大支持可以方便地测试代码的正确性和性能。 社区活跃Spring框架是一个开源项目拥有庞大的社区支持和活跃的开发者社群可以获得丰富的文档、教程和解决方案。 总的来说Spring框架是一款功能强大、灵活性高、易于扩展和维护的Java开发框架适用于各种规模和类型的应用程序开发。
二、IOC容器
介绍 IOC控制反转(Inversion of Control) 1、获取资源的传统方式 在应用程序中的组件需要获取资源时传统的方式是组件主动的从容器中获取所需要的资源在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式增加了学习成本同时降低了开发效率。 2、控制反转方式获取资源 反转控制的思想完全颠覆了应用程序组件获取资源的传统方式反转了资源的获取方向——改由容器主动的将资源推送给需要的组件开发人员不需要知道容器是如何创建资源对象的只需要提供接收资源的方式即可极大的降低了学习成本提高了开发的效率。这种行为也称为查找的被动形式。 3、DI DIDependency Injection翻译过来是依赖注入。 DI 是 IOC 的另一种表述方式即组件以一些预先定义好的方式例如setter 方法接受来自于容器的资源注入。相对于IOC而言这种表述更直接。 IOC 就是一种反转控制的思想 而 DI 是对 IOC 的一种具体实现。 4、IOC容器在Spring中的实现 Spring 的 IOC 容器就是 IOC 思想的一个落地的产品实现。IOC 容器中管理的组件也叫做 bean。在创建bean 之前首先需要创建 IOC 容器。Spring 提供了 IOC 容器的两种实现方式 1、BeanFactory 这是IOC容器的基本实现是Spring内部使用的接口。面向Spring本身不提供给开发人员使用。 2、ApplicationContext BeanFactory的子接口提供了更多高级特性。面向Spring的使用者几乎所有场合都使用ApplicationContext而不是底层的Bean Factory。 入门案例
1、创建Maven Module
2、引入依赖
dependencies!-- 基于Maven依赖传递性导入spring-context依赖即可导入当前所需所有jar包 --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.3.1/version/dependency!-- junit测试 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency
/dependencies3、创建HelloWorld类
public class HelloWorld {public void sayHello(){System.out.println(helloworld);}
}4、在Spring的配置文件中配置bean
bean idhelloworld classcom.atguigu.spring.bean.HelloWorld/bean5、创建测试类测试
Test
public void testHelloWorld(){ApplicationContext ac newClassPathXmlApplicationContext(applicationContext.xml);HelloWorld helloworld (HelloWorld) ac.getBean(helloworld);helloworld.sayHello();
}6、思路 7、注意
Spring 底层默认通过反射技术调用组件类的无参构造器来创建组件对象这一点需要注意。
三、基于注解管理Bean
3.1、Bean对象定义及获取 在Spring框架规范中所有由spring管理的对象都称之为Bean对象
3.2、Bean对象定义 Spring提供了以下多个注解这些注解可以直接标注在java类上将它们定义成Spring Bean。
注解说明Component该注解用于描述Spring中的Bean它是一个泛化的概念仅仅标识容器中的一 个组件Bean并且可以作用在任何层次例如Service层、Dao层等使用时只需将该注解标注在相应的类上即可。Respository该注解用于数据访问层Dao层的类标识为Spring中的Bean功能与 Component相同。Service该注解通常作用在业务层Service层用于将业务层的类标识为Spring中的 Bean其功能与Component相同。Controller该注解通常作用在控制层如SpringMVC的Controller用于将控制层的类标 识为Spring中的Bean其功能与Component相同。
3.3、Bean对象获取 通过ApplicationContext对象获取调用ApplicationContext对象的getBean()方法传入对应类的类型 即可获取该Bean对象示例
ApplicationContext context new AnnotationConfigApplicationContext(包扫描路径);
User user context.getBean(类名.class);
3.4、应用分析 在 cn.spring 下创建子包 bean 进行 bean 对象的创建及获取、 第1步在bean包下创建类UserDao
Repository
public class UserDao {private String databaseUrl;private String username;private String password;
} 第2步在bean包下创建测试类UserDaoTest
public class TestUserDao {Testpublic void testBean(){ApplicationContext context new
AnnotationConfigApplicationContext(cn.spring.bean);UserDao userDao context.getBean(UserDao.class);System.out.println(userDao userDao);}
}
说明将java类中的 Repository注解 替换为 Component注解、Service注解、Controller注 解 都是可以的。
3.5、依赖注入
3.5.1、 Value注解 Value注入是将属性值直接注入到bean中主要用于注入一些简单类型的属性如字符串、基本类型 等 使用时需要注意属性的类型和格式否则会导致注入失败。
示例在UserDao中进行属性值注入
第1步在UserDao的属性中通过Value注解注入属性值
Repository
public class UserDao {Value(jdbc:mysql://localhost:3306/)private String databaseUrl;Value(root)private String username;Value(root)private String password;Override
public String toString() {return UserDao{ databaseUrl databaseUrl \ , username username \ , password password \ };}
}
第2步执行测试方法进行测试 3.5.2、Autowired注解 Autowired注入是将对象注入到bean中并且在注入对象时会根据依赖注入容器中bean的类型进行匹 配。如果容器中有多个类型匹配的bean存在则会抛出异常。因此Autowired注入常用于注入复杂 对象、接口类型的属性或其他bean实例。 3.5.2.1、 根据类型注入
定义UserService类并注入UserDao对象
第1步在包bean下创建 UserService 类
Service
public class UserService {Value(注册业务)private String sname;// Autowired自动装配Autowiredprivate UserDao userDao;Overridepublic String toString() {return UserService{ sname sname \ , userDao userDao };}
}
第2步调整测试方法
Test
public void testAuto(){ApplicationContext context new
AnnotationConfigApplicationContext(cn.spring.bean);UserService userService context.getBean(UserService.class);System.out.println(userService userService);
}
第3步执行测试方法测试