springboot学习随笔

1.原有Spring优缺点分析

1.1Spring的优点分析

Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),
Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。

1.2Spring的缺点分析

虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。
除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度

2. Springboot以及Springboot的特点。

2.1 什么是springboot?

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程 . 理解:spring框架搭建的步骤:[1]依赖 [2]配置文件。 使用springboot可以简化上面的两个步骤。

2.2 springboot的特点

① 创建独立的 Spring 应用程序

② 嵌入的 Tomcat,无需部署 WAR 文件

③ 简化 Maven 配置

④ 自动配置 Spring

⑤ 提供生产就绪型功能,如指标,健康检查和外部配置

⑥ 开箱即用,没有代码生成,也无需 XML 配置。

3. 使用idea快速搭建springboot工程

3.1 如何创建

创建一个controller包

@RestController
public class HelloWorldController {

    @GetMapping("index")
    public Map<String,Object> hello(){
        Map<String,Object> map=new HashMap<>();
        map.put("name","刘晓辉");
        map.put("age",18);
        return map;
    }
}

浏览器访问接口

4.pringboot常用的配置文件类型.

properties和yml格式。他们的区别就是格式上不同。

properties格式如下:

#修改端口号
server.port=2222
# 修改上下文路径
server.servlet.context-path=/ace

yml结构

server:
  port: 4444
  servlet:
    context-path: /ace

不管使用哪个配置文件,他们的名字必须叫application. 如果上面两个配置文件同时存在,而且里面有相同的配置。则properties优先级高于yml优先级。

5. java如何读取配置文件中的内容

java为什么需要读取配置文件的内容,我们开发时需要把哪些内容放入配置文件。

OSS:上传文件。accessKeyId,accessKeySecret等,这些内容能写在java源代码中。硬编码文件,不利维护。 我们需要把信息写入配置文件。

读取方式有两种:

第一种方式: 在类上@ConfigurationProperties(prefix="")

@Data
@Component
@ConfigurationProperties(prefix = "student")
public class Student {
       private String name;
       private Integer age;
       private String address;
       private List<String> hobby;
       private Map<String,Object> map;
}

第二种使用@Value读取属性:---他只能读取基本类型和String类型。加在属性上

@Value("${student.map}")
 private Map<String,Object> map;
   
    @GetMapping("a")
 public Map<String,Object> a(){
        return map;
    }

6. springboot链接数据库

(1)引入相关的依赖。

       <!--mysql的驱动依赖-->
 <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.21</version>
        </dependency>

(2)配置数据源信息

spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/agito?serverTimezone=Asia/Shanghai
spring.datasource.druid.username=root
spring.datasource.druid.password=123456
spring.datasource.druid.initial-size=6

(3)测试

@SpringBootTest
class MarieBootApplicationTests {

    @Autowired
    private DataSource dataSource;

    @Test
    void contextLoads() throws Exception {
        System.out.println(dataSource.getConnection());
    }

}

7. springboot整合mybatis

(1)相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.10</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>marie-boot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>marie-boot</name>
    <description>marie-boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

<!--        数据源引入-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.21</version>
        </dependency>

    </dependencies>
    

</project>

(2)修改配置文件

#数据源
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/555?serverTimezone=Asia/Shanghai
spring.datasource.druid.username=root
spring.datasource.druid.password=123456

#指定映射文件所在的路径--
mybatis.mapper-locations=classpath:mapper/*.xml

#mybatis日志文件
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

(3) mapper接口

public interface StudentMapper {
    public List<Student> findAll();
}

(4)为mapper接口生成代理实现类

(5)测试

@SpringBootTest
class MarieBoot2ApplicationTests {

    @Resource
    private StudentMapper studentMapper;

    @Test
    void contextLoads() {
        System.out.println(studentMapper.findAll());
    }

posted @   北洛1024  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示