Spring 框架——spring入门教程

蔚落 2022-05-17 06:13 260阅读 0赞

打个广告,帮朋友卖点东西,东西超便宜的哟【衣服鞋子等】,厂家直接出货,绝对低于市场价!!! **一般都比市场价便宜3—7折【都是牌子货】,如果您感兴趣,可以扫描屏幕下方的二维码,感谢关注!!!**

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIyMTcyMTMz_size_16_color_FFFFFF_t_70 微信


一、基本介绍

1、spring的特点

Spring是一个开源框架,Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

  • 轻量级:与EJB对比,依赖资源少,销毁的资源少。
  • 分层: 一站式,每一个层都提供的解决方案
  1. web层:struts,spring-MVC
  2. service层:spring
  3. dao层:hibernate,mybatis , jdbcTemplate —> spring-data

2、spring优点

方便解耦,简化开发 (高内聚低耦合)

  • Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理
  • Spring工厂是用于生成bean

AOP编程的支持

  • Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

声明式事务的支持

  • 只需要通过配置就可以完成对事务的管理,而无需手动编程

方便程序的测试

  • Spring对Junit4支持,可以通过注解方便的测试Spring程序

方便集成各种优秀框架

  • Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持

降低JavaEE API的使用难度

  • Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

3、spring体系结构

70

注意:核心容器:beans、core、context、expression

二、入门案例

1、控制反转(IoC)

  1. ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护。之前开发中,直接new一个对象即可。学习spring之后需要实例对象时,从spring工厂(容器)中获得。

案例:

接口和实现类:

  1. public interface UserService {
  2. public void addUser();
  3. }
  4. public class UserServiceImpl implements UserService {
  5. @Override
  6. public void addUser() {
  7. System.out.println("a_ico add user");
  8. }
  9. }

配置文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd">
  6. <bean id="userServiceId" class="com.shen.ioc.UserServiceImpl"></bean>
  7. </beans>

说明:

  • 位置:任意,开发中一般在classpath下(src)
  • 名称:任意,开发中常用applicationContext.xml
  • 内容:添加schema约束,约束文件位置:spring-framework-3.2.0.RELEASE\docs\spring-framework-reference\html\ xsd-config.html

测试:

  1. @Test
  2. public void demo02(){
  3. //从spring容器获得
  4. //1 获得容器
  5. String xmlPath = "com/shen/ioc/beans.xml";
  6. ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
  7. //2获得内容 --不需要自己new,都是从spring容器获得
  8. UserService userService = (UserService) applicationContext.getBean("userServiceId");
  9. userService.addUser();
  10. }

2、依赖注入(DI)

依赖:一个对象需要使用另一个对象

注入:通过setter方法进行另一个对象实例设置。

例如:

  1. class BookServiceImpl{
  2. //之前开发:接口 = 实现类 (service和dao耦合)
  3. //private BookDao bookDao = new BookDaoImpl();
  4. //spring之后 (解耦:service实现类使用dao接口,不知道具体的实现类)
  5. private BookDao bookDao;
  6. //setter方法
  7. }

说明:模拟spring执行过程

  • 创建service实例:BookService bookService = new BookServiceImpl() —>IoC
  • 创建dao实例:BookDao bookDao = new BookDaoImple() —>IoC
  • 将dao设置给service:bookService.setBookDao(bookDao); —>DI

案例:创建BookService接口和实现类,创建BookDao接口和实现类,将dao和service配置 xml文件

其中dao为:

  1. public interface BookDao {
  2. public void addBook();
  3. }
  4. public class BookDaoImpl implements BookDao {
  5. @Override
  6. public void addBook() {
  7. System.out.println("di add book");
  8. }
  9. }

service为:

  1. public interface BookService {
  2. public abstract void addBook();
  3. }
  4. public class BookServiceImpl implements BookService {
  5. // 方式1:之前,接口=实现类
  6. // private BookDao bookDao = new BookDaoImpl();
  7. // 方式2:接口 + setter
  8. private BookDao bookDao;
  9. public void setBookDao(BookDao bookDao) {
  10. this.bookDao = bookDao;
  11. }
  12. @Override
  13. public void addBook(){
  14. this.bookDao.addBook();
  15. }
  16. }

配置文件:

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://www.springframework.org/schema/beans
  4. http://www.springframework.org/schema/beans/spring-beans.xsd">
  5. <!-- 创建service -->
  6. <bean id="bookServiceId" class="com.shen.di.BookServiceImpl">
  7. <property name="bookDao" ref="bookDaoId"></property>
  8. </bean>
  9. <!-- 创建dao实例 -->
  10. <bean id="bookDaoId" class="com.shen.di.BookDaoImpl"></bean>
  11. </beans>

测试:

  1. @Test
  2. public void demo01(){
  3. //从spring容器获得
  4. String xmlPath = "com/shen/di/beans.xml";
  5. ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
  6. BookService bookService = (BookService) applicationContext.getBean("bookServiceId");
  7. bookService.addBook();//di add book
  8. }

发表评论

表情:
评论列表 (有 0 条评论,260人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring 框架——spring入门教程

    打个广告,帮朋友卖点东西,东西超便宜的哟【衣服鞋子等】,厂家直接出货,绝对低于市场价!!! 一般都比市场价便宜3—7折【都是牌子货】,如果您感兴趣,可以扫描屏幕下方的二维码,感

    相关 Spring框架入门

    1.1专业术语了解 组件/框架设计 侵入式设计 引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。 例如: Struts框架 继承ActionSupp...