【从零学Spring入门到高级】day2-Spring入门程序

第三章《Spring的入门程序》

1.Spring 的下载

可以去官网下载压缩包,里边还有英文手册,可以看看所有的jar包,用的时候直接在Maven里边引入就行。

2.Spring的jar包

这一小节对spring包含的重要的jar包对应的作用进行了解释,我在此阶段没有过多关注,基本跳过。下图是其中一部分。

注意:如果你只是想用Spring的loC功能,仅需要引入: spring-context即可。将这个jar包添加到classpath当中。如果采用maven只需要引入context的依赖即可。

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.0.3</version>
        </dependency>

3.Spring第一个程序

maven的配置

<packaging>jar</packaging>
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <!--当你引入Spring context依赖之后,表示将Spring的基础依赖引入了-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.0.3</version>
        </dependency>
        <!--junit依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

 创建一个bean包,添加一个User类,空着即可

 右键resources目录,创建spring配置文件 ,放在resources目录下,编译打包后最后就放到了类的根路径下。

spring.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 http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--bean标签的两个重要属性:
        id:是这个bean的身份证号,不能重复,是唯一的标识。
        class:必须填写类的全路径,全限定类名。(带包名的类名)
    -->
    <bean id="userBean" class="com.xue.spring6.bean.User" />

</beans>

其中class可以这样快速复制——右键要配置的类->复制路径/引用->下图所示

 接下来进行测试,

4.第一个程序详细剖析

1.配置bean的id必须独一无二

2.Spring是怎么实例化对象的?
默认情况下Spring会通过反射机制,调用类的无参数构造方法来实例化对象。实现原理如下:
class clazz = Class.forName( "com. powernode .spring6.bean.User" );0bject obj = clazz.newInstance();

3.spring配置文件的名字随意,可以有多个,导入时逗号间隔

4.在配置文件中配置的类无须是自定义,可以使用JDK中的类

5.bean的名字写错会直接报错,而不是返回null

6.getBean()方法返回的类型是Object,如果访问子类的特有属性和方法时,还需要向下转型,此外还有另一种方式

User user = applicationContext.getBean( "userBean" ,User.class );

7.Spring 的IoC容器底层实际上使用了:工厂模式。Spring底层的IoC是怎么实现的?XML解析+工厂模式+反射机制

8.不是在调用getBean()方法的时候创建对象,执行以下代码的时候,就会实例化对象。getBean只是从Map集合中根据key拿到value

new classPathXmlApplicationContext("spring6.xml");

5.Spring6启用Log4j2日志框架

1.引入依赖

        <!--log4j2的依赖-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.19.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <version>2.19.0</version>
        </dependency>

2.提供配置文件

resources新建->文件->log4j2.xml

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
    <loggers>
        <!--
        level指定日志级别,从低到高的优先级:
        ALL < TRACE < DEBUG < INF0 < WARN< ERROR < FATAL <OFF
        -->
        <root level="DEBUG">
            <appender-ref ref="spring6log"/>
        </root>
    </loggers>
    <appenders>
        <!--输出日志信息到控制台-->
        <console name="spring6log" target="SYSTEM_OUT">
            <!--控制日志输出的格式-->
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss sss} [%t] %-3level %logger{1024} - %msg%n"/>
        </console>
    </appenders>
</configuration>

3.自己使用时(这块不是很懂,先简单截个图)

猜你喜欢

转载自blog.csdn.net/m0_48385518/article/details/128541029