JavaEE平台技术

JavaEE平台技术

1.Spring框架核心

1.1. 软件模块化

image-20220605220416272

1.2. Spring技术栈

  • 传统的阻塞式的Servlet技术栈

image-20220605221941233

  • 非阻塞的响应式的技术栈

image-20220605222119861

1.3. Servlet原理

image-20220605222606418

1.4. Spring容器

image-20220605223707727

SpringBoot:大量采用默认配置,帮助开发者高效地构建Spring应用。

BeanFactory和ApplicationContext

1.5. 对象生命周期

image-20220605225108677

image-20220605225525762

1.6. 对象生命周期示例

1.7. 控制反转

  • 什么是IOC: 控制反转IoC(Inversion of Control)是一个概念,是一种思想。由Spring容器进行对象的创建和依赖注入.程序员在使用时直接取出使用.

    正转:由程序员进行对象的创建和依赖注入称为正转.程序员说了算.
    Student stu = new Student(); ===>程序员创建对象
    stu.setName("张三"); ===>程序员进行赋值
    stu.setAge(22);

    反转:由Spring容器创建对象和依赖注入称为反转,将控制权从程序员手中夺走,由给Spring容器,称为反转. 容器说了算.
    ===>Spring容器负责对象的创建
    ===>Spring容器依赖注入值

    切记:Spring容器在启动时,就创建所有的对象stu....

  • 基于xml的IOC

    1)创建对象

    2)给创建的对象赋值
    A.使用setter注入
    注入分为简单类型注入和引用类型注入
    简单类型注入值使用value属性
    引用类型注入值使用ref属性
    必须要注意:使用setter注入必须提供无参的构造方法,必须提供setXXX()方法.

<!--创建学生对象-->
<bean id="stu" class="com.bjpowernode.pojo2.Student">
    <property name="name" value="李四"></property>    ===>简单类型注入
    <property name="age" value="22"></property>
    <property name="school" ref="school"></property>  ===>引用类型注入
</bean>
<!--创建学校对象-->
<bean id="school" class="com.bjpowernode.pojo2.School">
    <property name="name" value="清华大学"></property>
    <property name="address" value="海淀区"></property>
</bean>

B.使用构造方法注入
Student stu = new Student("张三",22);
   a.使用构造方法的参数名称进行注入值
        <bean id="school" class="com.bjpowernode.pojo3.School">
	        <constructor-arg name="name1" value="清华大学"></constructor-arg>
	        <constructor-arg name="address1" value="海淀区"></constructor-arg>
    	</bean>
   b.使用构造方法参数的下标注入值
		<bean id="stu" class="com.bjpowernode.pojo3.Student">
	        <constructor-arg index="0" value="钱七"></constructor-arg>
	        <constructor-arg index="1" value="22"></constructor-arg>
	        <constructor-arg index="2" ref="school"></constructor-arg>
	    </bean>
   c.使用默认的构造方法的参数的顺序注入值
   		<bean id="stuSequence" class="com.bjpowernode.pojo3.Student">
	        <constructor-arg value="陈十"></constructor-arg>
	        <constructor-arg value="22"></constructor-arg>
	        <constructor-arg ref="school"></constructor-arg>
	    </bean>
  • 基于注解的IOC
    也称为DI(Dependency Injection),它是IOC的具体实现的技术.

    基于注解的IOC,必须要在Spring的核心配置文件中添加包扫描.
    <context:component-scan base-package="com.bjpowernode.s01"></context:component-scan>

    药: 创建对象并依赖注入
    汤: xml 注解annotation
    1)创建对象的注解
    @Component:可以创建任意对象.创建的对象的默认名称是类名的驼峰命名法.也可以指定对象的名称@Component("指定名称").
    @Controller:专门用来创建控制器的对象(Servlet),这种对象可以接收用户的请求,可以返回处理结果给客户端.
    @Service:专门用来创建业务逻辑层的对象,负责向下访问数据访问层,处理完毕后的结果返回给界面层.
    @Repository:专门用来创建数据访问层的对象,负责数据库中的增删改查所有操作.

案例:
@Component("stu")  //交给Spring去创建对象,就是在容器启动时创建
public class Student {
    @Value("张三")  ===>简单类型的值注入
    private String name;
    @Value("22")
    private int age;
    ...}

2)依赖注入的注解
简单类型(8种基本类型+String)的注入
@Value:用来给简单类型注入值

引用类型的注入
A.@Autowired:使用类型注入值,从整个Bean工厂中搜索同源类型的对象进行注入.
同源类型也可注入.
什么是同源类型:
a.被注入的类型(Student中的school)与注入的类型是完全相同的类型
b.被注入的类型(Student中的school父)与注入的类型(子)是父子类
c.被注入的类型(Student中的school接口)与注入的类型(实现类)是接口和实现类的类型

注意:在有父子类的情况下,使用按类型注入,就意味着有多个可注入的对象.此时按照名称进行二次筛选,选中与被注入对象相同名称的对象进行注入.

B.@Autowired
@Qualifier("名称"):使用名称注入值,从整个Bean工厂中搜索相同名称的对象进行注入.

注意:如果有父子类的情况下,直接按名称进行注入值.

2. Maven和SpringBoot

2.1. Maven简介

  • 编译打包应用程序
  • 依赖管理

2.2. Maven生命周期

2.3. Maven插件

2.4. IDE和Maven的对比

2.5. SpringBoot

2.6. Actuator

posted @ 2022-06-06 16:10  RichieLe  阅读(115)  评论(0)    收藏  举报