JavaWeb-初识Spring

这篇具有很好参考价值的文章主要介绍了JavaWeb-初识Spring。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

  1. Spring简介

  2. Spring项目

  3. Bean管理

    1. 基于xml的Bean管理

      • 创建对象

      • 属性注入

    2. 基于xml+注解的Bean管理

      • 创建对象

      • 属性注入

    3. 基于纯注解的Bean管理

内容

Spring简介

  1. Spring是什么

    Spring是于2003 年兴起的一个轻量级的Java的开放源代码的设计层面框架。Spring解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。

  2. Spring核心是什么

    Spring的核心是控制反转(IOC)和面向切面(AOP)。

    1. IOC:控制反转,将创建对象的过程交给spring进行管理。

    2. AOP:面向切面,在不修改源代码的情况之下进行代码功能的增强。

  3. Spring优势是什么

    Spring是为了解决企业应用开发的复杂性而创建的。Spring框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。总结下来分以下几点:

    1. 方便解耦,简化开发,Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理,这也是IOC的作用。

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

    3. 声明式事务的支持,只需要通过配置就可以完成对事务的管理,而无需手动编程。

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

    5. 方便集成各种优秀框架,Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis等)的直接支持。

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

  4. Bean是什么

    Bean是Spring容器管理的对象。

  5. Spring容器是什么

    Spring容器是创建以及管理Bean对象的。

Spring项目

  1. IDEA创建项目

    JavaWeb-初识Spring

  2. 配置Maven,使用默认版本也可以

    JavaWeb-初识Spring

  3. 导入spring和单元测试junit依赖

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.2.12.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.12.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.2.12.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    

    JavaWeb-初识Spring

  4. 创建spring-config.xml(文件名随便取)

    JavaWeb-初识Spring

    JavaWeb-初识Spring

Bean管理

  1. 创建Demo类

    public class Demo {
        private String name;
        private Integer age;
        public Demo(){}
        public Demo(String name, Integer age) {
            this.name = name;
            this.age = age;
        }
        public void setName(String name) {this.name = name;}
        public void setAge(Integer age) {this.age = age;}
        @Override
        public String toString() {
            return "Demo{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
    

    JavaWeb-初识Spring

  2. 创建测试类

    import org.junit.Test;
    
    public class Main {
        @Test
        public void test(){
    
        }
    }
    

    JavaWeb-初识Spring

基于xml的Bean管理

创建对象
  1. spring配置文件(spring-config.xml)添加配置,注册Demo类为Bean对象

    <bean class="com.example.aji.bean.Demo" id="demo">
    
    </bean>
    

    JavaWeb-初识Spring

  2. 从容器中取出Demo对象

    • ApplicationContext spring上下文

    • ClassPathXmlApplicationContext 以xml配置文件方式创建上下文

    • .getBean(beanName) 跟据beanName从上下文中获取Bean对象

    • .getBean(class) 跟据class从上下文中获取Bean对象

    @Test
    public void test(){
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        Demo demo = (Demo)context.getBean("demo");
        System.out.println(demo);
    }
    

    JavaWeb-初识Spring

属性注入
  1. 构造器注入

    • constructor-arg 通过构造器注入属性
    <bean class="com.example.aji.bean.Demo" id="demo">
        <constructor-arg name="name" value="aji"/>
        <constructor-arg name="age" value="20"/>
    </bean>  
    

    JavaWeb-初识Spring

  2. set方法注入

    • property 通过set方法注入属性
    <bean class="com.example.aji.bean.Demo" id="demo">
        <property name="name" value="aji"/>
        <property name="age" value="21"/>
    </bean> 
    

    JavaWeb-初识Spring

基于xml+注解的Bean管理

  1. 注解

    • 注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值...)

    • 使用注解,注解作用在类上面,方法上面,属性上边

    • 使用注解的目的:简化XML配置

  2. 编辑Spring配置文件添加注解扫描功能

    <!--开启注解扫描 com.example.aji 所有的包中的所有的类-->
    <context:component-scan base-package="com.example.aji"/>
    

    JavaWeb-初识Spring

创建对象
  1. Spring针对Bean管理中创建对象提供的注解

    • @Component 普通的类

    • @Controller 表现层

    • @Service 业务层

    • @Repository 持久层

  2. 创建普通对象

    import org.springframework.stereotype.Component;
    @Component
    public class Demo {
        private String name;
        private Integer age;
        public Demo(){}
        public Demo(String name, Integer age) {
            this.name = name;
            this.age = age;
        }
        @Override
        public String toString() {
            return "Demo{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
    

    JavaWeb-初识Spring

  3. 创建业务层对象

    • 创建DemoService接口

      public interface DemoService {
          Demo getDemo();
      }
      
    • 创建DemoServiceImpl实现DemoService接口变更添加

      import com.example.aji.bean.Demo;
      import com.example.aji.service.DemoService;
      import org.springframework.stereotype.Service;
      
      @Service(value = "demoService")
      public class DemoServiceImpl implements DemoService {
          @Override
          public Demo getDemo() {
              return new Demo("aji",20);
          }
      }
      

      JavaWeb-初识Spring

    JavaWeb-初识Spring

  4. 其他对象也类似,添加相应注解即可

属性注入
  1. 属性注入注解

    • @Value 用于注入普通类型(String,int,double等类型)

    • @Autowired 默认按类型进行自动装配(引用类型)

    • @Qualifier 不能单独使用必须和@Autowired一起使用,强制使用名称注入

    • @Resource Java提供的注解,也被支持。使用name属性,按名称注入

  2. @Value

    @Component
    public class Demo {
        @Value("aji")
        private String name;
        @Value(value = "21")
        private Integer age;
    
        @Override
        public String toString() {
            return "Demo{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
    

    JavaWeb-初识Spring

  3. @Autowired

    import com.example.aji.bean.Demo;
    import com.example.aji.service.DemoService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service(value = "demoService")
    public class DemoServiceImpl implements DemoService {
        @Autowired
        private Demo demo;
    
        @Override
        public Demo getDemo() {
            return demo;
        }
    }
    

    JavaWeb-初识Spring

基于纯注解的Bean管理

  1. 删除spring-config.xml文件,并创建SpringConfig类,添加@Component注解把该类交给spring处理,添加@ComponentScan注解指定spring扫描的包路径

    @Component
    @ComponentScan("com.example.aji")
    public class SpringConfig {
    }
    

    JavaWeb-初识Spring

  2. 测试(其余部分与xml+注解方式一致)

    @Test
    public void test(){
        //ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        /*Demo demo = (Demo)context.getBean("demo");
        System.out.println(demo);*/
        DemoService demoService = (DemoService)context.getBean("demoService");
        System.out.println(demoService.getDemo());
    }
    

    JavaWeb-初识Spring文章来源地址https://www.toymoban.com/news/detail-711016.html

到了这里,关于JavaWeb-初识Spring的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaWeb_瑞吉外卖_项目优化Day10-Spring Cache

    提交步骤: 生成空仓库, 不要加任何文件 右键项目, add整个项目 commit和push, push时添加远程仓库地址 新建分支步骤: 在本地新建一个分支 push 注入redis对象 将验证码保存到redis, 有效期5分钟 获取验证码, 登录成功后删除验证码 获取缓存数据 删除缓存数据 Spring Cache是一个框架,

    2024年02月13日
    浏览(44)
  • nginx简介与安装配置,目录结构和配置文件介绍,配置nginx的service管理

    目录 一.nginx简介 1.简介 2.特性 二.nginx安装 1.rpm包方式 (1)下载扩展源 (2)安装扩展rpm包,nginx -V查看配置参数,后面源码安装时要用到 (3)默认的配置文件位置和html存放位置 2.源码方式 (1)建议提前下好所需要的部分包 (2)下载tar.gz包 (3)建议将包解压到/usr/local

    2024年02月04日
    浏览(45)
  • JavaWeb项目:航班信息管理系统(tomcat+jsp)

    航班信息管理系统是学习Javaweb的一个小项目,首先对该项目的业务需求进行分析,根据项目文档知它的主要实现技术为 SERVLET、JSP、MVC 架构、JDBC 和 MySQL。该项目着重学生的实际应用场景来设计,模拟 机场中的航班系统的业务实现以及扩展,能够实现航班信息管理的的所有功

    2024年04月12日
    浏览(45)
  • Javaweb项目案例:一个简单的用户管理系统实现

    我们来设计一个简单的用户管理系统,具有查看用户,添加用户,删除用户,更新用户的所有功能,并能支持分页显示,以及通过模糊查询的 本项目采用Druid数据库连接池 注意:JDBC和DAO部分本文不予演示,请自行完成此部分代码的编写🐿️ 模板页面,showuser.html Sho

    2024年02月09日
    浏览(50)
  • 初识FreeRTOS入门,对FreeRTOS简介、任务调度、内存管理、通信机制以及IO操作,控制两个led不同频率闪烁

    当代嵌入式系统的开发越来越复杂,实时性要求也越来越高。为了满足这些需求,开发者需要使用实时操作系统(RTOS),其中一个流行的选择是FreeRTOS(Free Real-Time Operating System)。本篇博客将详细介绍FreeRTOS的特性、任务调度、内存管理、通信机制以及一些示例代码。 FreeR

    2024年02月14日
    浏览(40)
  • Spring Boot项目 目录结构

    根目录: com.zhangziwa.practisesvr 启动类: com.zhangziwa.practisesvr.PractisesvrApplication 实体类: com.zhangziwa.practisesvr.model 数据传输对象(dto): com.zhangziwa.practisesvr.dto 视图包装对象(vo)推荐: com.zhangziwa.practisesvr.vo 数据接口访问层(Dao): com.zhangziwa.practisesvr.mapper 数据服务接口层(S

    2024年01月25日
    浏览(42)
  • JavaWeb——基于Spring Boot的图书数字化管理系统的设计与实现

    课程设计总结 随着信息技术的快速发展,数字化管理已经成为各行各业提高效率和管理水平的重要手段。在图书管理领域,数字化管理系统可以有效地提高管理效率,提供更好的用户体验。本项目旨在开发一个基于 Spring Boot 的图书数字化管理系统,为管理员和读者提供便捷

    2024年02月15日
    浏览(69)
  • 超适合练手的一套JavaWeb项目 (超市后台管理系统)

    1.搭建一个maven web项目 2.配置Tomcat 3.测试项目是否能够跑起来 4.导入项目中遇到的jar包 5.创建项目结构 1.数据库配置文件 db.properties文件代码 2.编写数据库的公共类 java代码 3.编写字符编码过滤器 xml代码 java dao层接口代码 java dao接口的实现类代码 java service接口代码

    2024年02月05日
    浏览(50)
  • Java项目:基于JavaWeb的教务管理系统的设计与实现

    作者主页:夜未央5788  简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为基于WEB的教务管理系统。 主要系统功能包括: 学生管理:显示所有学生、添加学生; 课程管理:显示所有课程、添加课程; 学院管理:显示所有学院、添加学

    2024年02月11日
    浏览(45)
  • JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服

    不同配置文件,配置同一个属性谁有效 propertiesymlyaml 命令行参数Java系统属性 项目打包后要改变属性: 红色是Java系统属性,绿色是命令行参数 ‘ 获取IOC容器:applicationContext就是IOC容器对象 IOC容器中bean是默认单例的只有一个,这样三个获取的bean是同一个 单例还是多例取决

    2024年04月23日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包