首页 > 其他分享 >16. Spring的基本使用

16. Spring的基本使用

时间:2022-10-28 20:58:42浏览次数:50  
标签:基本 配置文件 16 Spring bean import org 日志

一、引入Spring的依赖

  通过 maven 的方式导入 jar包,打包方式设置为 jar 包即可。

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<!-- 当你引入Spring Context依赖以后,表示将Spring的基础依赖引入了 -->
<!-- 如果,你想使用Spring的jdbc,或者说其它的tx,那么还需要再次引入依赖 -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.9</version>
</dependency>

<!-- junit 测试程序 -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

二、创建Spring的核心配置文件

  创建 Spring 的核心配置文件,配置文件名可以随便起,没有强制要求,这里起名为 spring.xml。这个配置文件最好放在类路径中,即 【resources】 文件夹下,方便后期的移植。

<?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,这样Spring才可以帮助我们管理这个对象
        <bean>标签的两个重要属性:
            id:是这个bean的身份证号,不能重复,是唯一标识
            class:必须全写类的全路径,全限定类名
    -->
    <bean id="user" class="star.light.bean.User"></bean>
    <bean id="date" class="java.util.Date"></bean>
</beans>

三、创建Bean对象

package star.light.bean;

public class User {
    // Spring是怎么实例化对象的
    // 默认情况下,Spring会通过反射机制,调用类的无参数构造方法来实例化对象
    // 底层原理:Class.forName("star.light.bean.User").getConstructor().newInstance();

    public User() {
        System.out.println("User的无参的构造方法执行");
    }
}

四、启动日志功能

  从 Spring5 之后,Spring 框架可以集成的日志框架是 Log4j2

引入 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>

创建配置文件

  在类的根目录下提供 log4j2.xml 配置文件,这个配置文件的文件名固定为 log4j2.xml,文件必须存放在类的根路径下;

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <loggers>
        <!--
            level指定日志级别,从低到高的优先级:
                ALL < TRACE < DEBUG < INFO < 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>

五、测试程序

package star.light.test;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.text.SimpleDateFormat;
import java.util.Date;


public class SpringTest {

    @Test
    public void testSpring(){

        // 那我们应该如何使用log4将记录日志信息呢?
        // 第一步:创建日志记录器对象
        // 获取SpringTest类的日记记录器对象,
        // 也就是说只要是SpringTest类中代码执行记录日志的话,就输出相关的日志信息
        Logger logger = LoggerFactory.getLogger(SpringTest.class);

        // 第二步:记录日志,根据不同的级别来输出日志
        logger.info("我是一条消息");
        logger.debug("我是一条调式消息");
        logger.error("我是一条错误消息");

        // 第一步:获取 Spring 容器
        // ApplicationContext翻译为:应用上下文,其实就是Spring容器
        // ApplicationContext是一个接口,这个接口有很多实现类,其中有一个实现类为ClassPathXmlApplicationContext
        // ClassPathXmlApplicationContext专门从类路径当中加载Spring配置文件的一个Spring上下文对象
        // 这行代码只要执行:就相当于启动了Spring容器,解析Spring的配置文件,并且实例化所有的bean对象,放在Spring容器中
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/spring.xml");

        // 第二步:根据bean的id从Spring容器中获取这个对象
        // 如果bean的id不存在,不会返回null,而是出现异常
        Object userBean = applicationContext.getBean("user");
        System.out.println(userBean);

        // 如果不想强制类型转换,可以使用以下代码(通过第二个参数直送返回bean的类型)
        Date date = applicationContext.getBean("date", Date.class);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String formatDate = simpleDateFormat.format(date);
        System.out.println(formatDate);
    }
}

标签:基本,配置文件,16,Spring,bean,import,org,日志
From: https://www.cnblogs.com/nanoha/p/16837432.html

相关文章

  • 【JLOI2016_SHOI2016】侦察守卫(树形DP)
    考虑树形DP,假设我们已经考虑完当前子树内监听点的放置情况,根为\(u\),考虑我们要记录什么状态:\(u\)子树内的监听点向子树外还能监听多远,\(u\)子树内距离根最远的未被监听......
  • 【HNOI2016】序列(线段树)
    题意扩展版:有两个长度为\(n\)的序列\(a,b\),你需要维护\(m\)次操作:对\(a\)区间赋值。给定\(l,r\),对于所有\(i\in[l,r]\),执行\(b_i\getsb_i+a_i\)。询问区间......
  • springboot启动默认连接数据库问题
    这里是给新手介绍的springboot默认启动是连接数据库的经常很多人蒙蔽,//无数据源启动@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,DataSo......
  • 【HEOI2016_TJOI2016】排序(线段树分裂&合并)
    线段树分裂&合并入门题。对于每个单调段用一个权值线段树维护。一次操作相当于先对\(l,r\)所在的单调段的权值线段树分裂,然后再合并若干棵的权值线段树。线段树分裂和......
  • 【CF1693C】Keshi in Search of AmShZ(类dijkstra)
    首先可以钦定每次只删当前点的出边。然后可以注意到,在最优策略下,我们肯定不会走回重复的点:否则意味着出现了一个环,那么我们还是需要将这个环上的某条边删掉(否则最坏情况就......
  • springboot像springnvc那样访问视图
    1.SpringBoot访问静态资源的位置(优先级按以下顺序)classpath默认就是resources,所以classpath:/static/就是resources/static/classpath:/META‐INF/resources/cl......
  • Spring Boot 学习笔记
    SpringBoot简介为什么要使用SpringBoot因为Spring,SpringMVC需要使用的大量的配置文件(xml文件)还需要配置各种对象,把使用的对象放入到spring容器中才能使用对象......
  • 【SpringBoot】引入mybatis及连接Mysql数据库
    创建一个SpringBoot项目其他不赘叙了,引入MyBaties、MySql依赖编辑 创建mysql表CREATETABLEsp_users(`id`INTPRIMARYKEY,`username`VARCHAR(30),`age`INT);刚......
  • sqlserver2016安装包简要说明
    sqlserver2016安装包简要说明如果要装vs,先装了sqlserver数据库再装vs,因为vs自带了sqlserver简版,会和sqlserver2016有冲突。 先装sqlserver内核    然后装管......
  • 强化学习的一些基本概念
    经验回放:这是训练过程中经常用到的一个概念。是强化学习中一个重要的技巧,可以大幅度提升强化学习的表现。具体操作:把智能体与环境交互的记录(经验)储存在一个数......