SpringMVC

1.Spring

1.1、简介

  • spring:春天

  • spring理念:是现有的技术更加容易使用,本身是一个大杂烩,整合了现有知识框架

 <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-webmvc</artifactId>
     <version>5.3.9</version>
 </dependency>
 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-jdbc</artifactId>
     <version>5.3.9</version>
 </dependency>

1.2、优点

  • spring是一个开源的、免费的框架(容器)!

  • 轻量级的、非入侵式的框架!

  • 控制反转(IOC)、面向切面编程(AOP)

  • 支持事务的处理,对框架整合的支持

总结一句话:spring就是一个轻量级的控制反转和面向切面编程的框架

1.3、组成

1.4、拓展

现代化的Java开发,就是基于spring开发

  • spring boot

    • 一个快速开发的脚手架

    • 基于spring boot可以快速的开发单个微服务

    • 约定大于配置‘

  • spring cloud

    • 基于spring boot实现的

学习spring boot前提,需要掌握spring及springmvc

弊端:发展了太久之后,违背了原来的理念,配置十分繁琐,人称“配置地狱!”

2、IOC理论推导

  1. UserDao接口

  2. UserDaoImpl实现类

  3. UserService 业务接口

  4. UserServiceImpl 业务实现类

在我的之前的业务中,用户的需求可能会影响我们原来的代码,我们需要根据用户的需求去修改源代码!如果程序代码量十分大,修改一次的成本代价十分昂贵!

我们使用Set接口实现。已经发生了革命性的变化

 private UserDao userDao;
 //利用set进行动态实现值的注入!
 public void setUserDao(UserDao userDao){
     this.userDao = userDao;
 }
  • 原来,程序时主动创建对象,控制权在程序员手上!

  • 使用了set注入后,程序不在具有主动性,而是变成了被动的接受对象1

这种思想从本质上解决问题,我们程序员不用再去管程序的创建了。系统的耦合性大大降低,可以更专注的在业务上实现!

这时IOC的原型!

3、HelloSpring

实体类

 package com.hbx.pojo;
 ​
 public class Hello {
     private String str;
 ​
     public String getStr() {
         return str;
     }
 ​
     public void setStr(String str) {
         this.str = str;
     }
 ​
     @Override
     public String toString() {
         return "Hello{" +
                 "str='" + str + '\'' +
                 '}';
     }
 }

配置文件beans.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <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
         https://www.springframework.org/schema/beans/spring-beans.xsd">
 ​
     <!--bean = 对象-->
     <!--id = 变量名-->
     <!--class = new的对象-->
     <!--property 相当于给对象中的属性设值-->
 ​
 ​
 ​
 <!--    使用spring来创建对象 在spring中成为bean
 类型 变量名 = new 类型()
 id = 变量名
 class = new 的对象;
 property相当于给对象中的属性设置一个值
 ​
 ​
 ​
 bean = 对象  new Hello();
 ​
 ​
 ​
 -->
     <bean id="hello" class="com.hbx.pojo.Hello">
         <property name="str" value="Spring"/>
     </bean>
 ​
 </beans>

通过beans直接连接起来

对象相当于实体类

测试!

 import com.hbx.pojo.Hello;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 ​
 public class MyTest {
     public static void main(String[] args) {
         //获取spring的上下文对象!
         ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
         //我们的对象都在spring中管理了,我们要使用,直接去里面取出来就可以了
         Hello hello = (Hello) context.getBean("hello");
         System.out.println(hello.toString());
 ​
     }
 }

4、IOC创建对象的方式

  1. 使用无参构造方法,默认

  2. 有参构造方法

    1. 下标赋值

       <!--第一种 下标赋值-->
           <bean id="user" class="com.hbx.pojo.User">
               <constructor-arg index="0" value="hbx学Java"/>
           </bean>
    2. 类型

       <!--第二种方式 通过类型 不建议使用-->
       <!--    <bean id="user" class="com.hbx.pojo.User">-->
       <!--        <constructor-arg type="java.lang.String" value="hanboxuan"/>-->
       <!--    </bean>-->
    3. 通过参数名

       <!--第三种 直接通过参数名-->
           <bean id="user" class="com.hbx.pojo.User">
               <constructor-arg name="name" value="韩博轩"/>
           </bean><

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值