SpringBoot-结合thymeleaf和mybatis案例

【一】Springboot+Shiro+Mybatis+Thymeleaf实现权限控制和gif验证 Springboot+Shiro+Mybatis+ajax实现权限控制,登陆,gif验证码,记住我等功能 阅读详情

今天记录下对springBoot的初步使用。

笔者不知道各位同道中人有多少大牛和多少新嫩,新嫩无疑是幸运的,入手学习的第一套框架极大可能就是SpringMvc+spring+mybatis。不用经历struct2和hibernate的洗礼,不用面对曾今的一堆繁琐的xml,至少你是在大量使用注解的时代。

笔者属于新老交接的时间2014开始接触java,是学校专业,但基础不好,一路被老学长坑带学了各种古老的东西。

无论咋样,现在说说springboot。

springboot的理念是:习惯优于配置,说白了,就是让大家不要标新立异,弄个马沙特风格来构建项目,用spring的开发者,都使厂家提供的风格来构建项目,而这个风格是由大部分程序员多年形成的习惯而来的。

然后不要把springboot理解为一种新技术,它只是巧妙的运用了spring4之后提供的通过代码来自动完成配置,来替换了xml配置

笔者案例的springboot版本为1.5.10

一:入门案例

新建maven项目,pom文件为:

<?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 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>gccSpringBoot</groupId>
  <artifactId>gccSpringBoot</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>gccSpringBoot Maven Webapp</name>
  <url>http://maven.apache.org</url>

  <!-- Inherit defaults from Spring Boot -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.10.RELEASE</version>
  </parent>

  <dependencies>

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

  </dependencies>

  <!-- Package as an executable jar -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

主要是引入starter-web,这东西会关联下载springWeb所需的jar包。

然后就是新建启动文件:

package com.gcc;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created by gcc on 2018/2/27.
 *
 * springBoot会扫描此运行文件以及子目录的注解
 *
 * @RestController 注解相当于@ResponseBody + @Controller合在一起的作用。
 * 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器不起作用,返回的内容就是Return 里的内容。
 *
 * @EnableAutoConfiguration  ,这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。
 *  由于pom内配置的是 spring-boot-starter-web,带有Tomcat和SpringMVC,所以注解将假定你正在开发一个web应用,并对Spring进行相应地设置。
 *
 */
@RestController
@EnableAutoConfiguration
public class Demo1 {

    @RequestMapping("/")
    public String home(){
        return "welcome to home";
    }

    /**
     * main方法通过调用run ,将业务委托给了Spring Boot的SpringApplication类。
     * SpringApplication将引导我们的应用,启动Spring,相应地也会启动自动配置的Tomcat服务器。
     * 我们需要将 Example.class 作为参数传递给run方法,以此告诉SpringApplication谁是主要的Spring组件,并传递args数组以暴露所有的命令行参数。
     */
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Demo1.class,args);
    }

}

代码功能已经注释的很清楚了,关键就是@EnableAutoConfiguration,会根据pom文件内容来选择执行哪些配置,具体怎么实现可以进入注解代码查看,对理解springboot运行原理很有帮助。

main为入口,右击此类运行run,同时就会运行内置的tomcat,控制台打印一个Banner图案和运行日志:


之后再浏览器输入localhost:8080,就会根据代码逻辑显示welcom to home的字样

这样一个web项目就初步构建完成了,类别曾今整合structs2和springMvc是不是快速了很多,连web.xml都没有任何配置

二:小项目构建案例

当然只是构建web项目是不足以开发的,我们还需要前端和数据库

先说前端,springboot建议使用各类前端模板,常用的有freemarker和thymeleaf,推荐的是thymeleaf。至于为什么不用jsp,百度有一推理由,硬伤什么的笔者也看了,如下:

om.xml中的javax.servlet.jsp.jstl是用于支持JSP标签库的,在Web2.5的容器中没有问题,单当你的容器是Web3.0或以上版本时,就会出问题。 这是个非常坑爹的问题。

javax.servlet.jsp.jstl会自动加载依赖servlet-api-2.5.jar, 而且会在实际运行时把支持Web3.0的3.1版本的javax.servlet-api覆盖掉。即使你在pom.xml显示的在加入3.1版本的javax.servlet-api也没用。导致SpringBoot应用抛出Runtime exception运行错误。

这是一个不可调和的矛盾,要吗不用javax.servlet.jsp.jstl,要吗不用Web3.0。

但绝大多数情况下,jstl标签库不是必须的,而Web3.0是必须的。替代方式就是不用JSP,改用Thyemeleaf吧

spring厂家,呵呵:噫吁嚱,整合有bug大家不要用,遇到麻烦概不负责。

然后百度了一堆前端模板的好处安慰自己,模板好啊,html格式的,前端多方便测试,然而作为一个前端,后台,数据库都自个儿搞的程序员根本体会不到模板的优势。

结论,笔者使用thymeleaf

再说数据库,springboot提供的数据库操作方式有多种,例如JPA,但笔者自从使用mybatis后一直很习惯这种方式,所以这里也使用mybais。

下面是案例项目结构,使用的是idea开发工具:



使用thymeleaf和mybatis先要引用对应的jar包,这里额外再添加了dbcp2连接池:

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.gcc</groupId>
	<artifactId>thymeleaf</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>thymeleaf</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.10.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.1</version>
		</dependency>
		<!--数据库连接jdbc依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<!--mysql链接依赖-->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-dbcp2</artifactId>
			<version>2.1.1</version>
		</dependency>


	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>


</project>

这里jdbc和devtools可以去掉,在使用jdbc方式时,配置mybatis然后用xml文件写sql会意外报错(使用注解CRUD没有问题);devtools用于热部署,测试时候没有生效。这两个问题待解决,有清楚的请告知笔者。


所需jar包齐全后,这里先串连thymeleaf,测试实体如下:

package com.gcc.entity;

/**
 * Created by gcc on 2018/2/28.
 */
public class Person {

    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

准备的测试数据如下:

package com.gcc.web;

import com.gcc.entity.Person;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by gcc on 2018/2/28.
 */
@Controller
@SpringBootApplication
public class thymeleafDemoController {

    @RequestMapping("/home")
    public String index(Model model){
        Person single = new Person("sky",21);
        List<Person> personList = new ArrayList<Person>();
        Person p1 = new Person("OK_mary",27);
        Person p2= new Person("jack",16);
        Person p3= new Person("faker",22);
        personList.add(p1);
        personList.add(p2);
        personList.add(p3);

        model.addAttribute("singlePerson",single);
        model.addAttribute("people",personList);
        return "index";
    }

}

这里额外说明一个注解,@SpringBootApplication,这个注解本身没有特别意义,它主要用于简化,它主要包含了@EnableAutoConfiguration和@ComponentScan。

准备的测试页面如下:

<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta content="text/html;charset=UTF-8"/>
    <meta http-equiv="x-ua-compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <title>thymeleaf</title>
    <link th:href="@{bootstrap_3/css/bootstrap.min.css}" rel="stylesheet"/>
    <link th:href="@{bootstrap_3/css/bootstrap-theme.min.css}" rel="stylesheet"/>


</head>
<body>

    <div class="panel panel-primary">
        <div class="panel-heading">
            <h3 class="panel-title">访问人</h3>
        </div>
        <div class="panel-body">
            <span th:text="${singlePerson.name}"></span>
        </div>
    </div>

    <div th:if="${not #lists.isEmpty(people)}">
        <div class="panel panel-primary">
            <div class="panel-heading">
                <h3 class="panel-title">列表</h3>
            </div>
            <div class="panel-body">
                <ul class="list-group">
                    <li class="list-group-item" th:each="person:${people}">
                        <span th:text="${person.name}"></span>
                        <span th:text="${person.age}"></span>
                        <button class="btn" th:onclick="'getName(\''+${person.name}+'\');'">获得名字</button>
                    </li>
                </ul>
            </div>
        </div>
    </div>

    <script th:src="@{jquery/jquery-3.3.1.min.js}" type="text/javascript"></script>
    <script th:src="@{bootstrap_3/js/bootstrap.min.js}" type="text/javascript"></script>

    <script th:inline="javascript">
        var single=[[${singlePerson}]];
        alert(single.name+"/"+single.age)

        function getName(name) {
            alert(name)
        }
    </script>

</body>
</html>

thymeleaf其实和jsp或者html都很类似,通过第一行声明,把html从静态转换为动态,也就是说可以用某些表达式填充数据。需要转换的数据用th:开头。

通过"@{}"引用静态资源,这里引用了bootstrap和jquery

通过${}访问model中的属性

通过th:each来循环,类似c:foreach

通过th:if来做判断,也支持>,<,>=,<=,==,!=

通过th:inline="Javascript",使能在js里获取model的数据,通过[[${}]]来获取实际的值

至于contraller是如何将数据传递到视图的,这也是由于默认配置,配置类部分代码如下:

@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties {

	private static final Charset DEFAULT_ENCODING = Charset.forName("UTF-8");

	private static final MimeType DEFAULT_CONTENT_TYPE = MimeType.valueOf("text/html");

	public static final String DEFAULT_PREFIX = "classpath:/templates/";

	public static final String DEFAULT_SUFFIX = ".html";


最后是启动入口,这里先不用关心内容,其内容是用于之后的数据库测试:

package com.gcc;

import com.gcc.dao.TestDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

//第三个是开启缓存
@SpringBootApplication
@RestController
@EnableCaching
public class ThymeleafApplication {

	@Autowired
	TestDao testDao;

	@Value("${book.name}")
	private String name;

	@RequestMapping("/")
	public String home(){
		return "welcome to home the book's name is "+name;
	}

	@RequestMapping("/test")
	public String testMybatis(){
		return testDao.find().get(0).getName();
	}
	@RequestMapping("/testXml")
	public String testMybatisXml(){
		return testDao.findByXml().get(0).getName();
	}

	public static void main(String[] args) {
		SpringApplication.run(ThymeleafApplication.class, args);
	}


}

启用后访问home路径,跳转页面如下:


可以点击测试,是否js也获取了model的数据,正常则串连thymeleaf完成。



下面是串连mybatis,首先是配置文件,application.properties:

#server.port=8443
#用户会话session过期时间,单位是秒
server.session.timeout=3600
spring.profiles.active=dev
server.context-path=/
#server.ssl.key-store=.keystore
#server.ssl.key-store-password=101213
#server.ssl.key-store-type=JKS
#server.ssl.key-alias=tomcat
# 下面是通过此配置文件注入的数据,仅做测试
book.name=jack
book.price=20
#debug=true
#测试时关掉页面模板缓存
spring.thymeleaf.cache=false
#jdbc
#jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://127.0.0.1:3307/spring_boot?useUnicode=true&characterEncoding=utf8
#jdbc.username=root
#jdbc.password=123456
#jdbc.maxActive=2335
#jdbc.maxIdel=120
#jdbc.maxWait=100
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.type=org.apache.commons.dbcp2.BasicDataSource
spring.datasource.url=jdbc:mysql://127.0.0.1:3307/spring_boot?useUnicode=true&characterEncoding=utf8
spring.datasource.dbcp2.max-total=2335
spring.datasource.dbcp2.max-idle=120
spring.datasource.dbcp2.max-wait-millis=100
mybatis.mapper-locations=classpath:mappings/*.xml

#号后的是注释掉的。

主要是最后几行,配置了数据驱动,数据库用户名密码,数据方式(连接池),路径,编写sql的xml文件路径

然后是测试用的dao:

package com.gcc.dao;

import com.gcc.entity.Person;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * Created by gcc on 2018/2/28.
 */
@Mapper
public interface TestDao {
    @Select("select * from users;")
    public List<Person> find();

    public List<Person> findByXml();

}
@Mapper注解会告诉mybatis来扫描自己,并成为一个bean

其中find方法是通过注解来编写sql,findByXml是通过xml来编写sql。

xml如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gcc.dao.TestDao">

	<select id="findByXml" resultType="com.gcc.entity.Person">
		select * from users
	</select>

</mapper>

然后就可以通过入口controller来测试两种方式的查询,结果正常则表示串连mybatis完成。

这里数据库是mysql。

感谢各位观看,同道中人请多交流,笔者是老新嫩




【个人实践】基于SpringBoot+Thymeleaf+Mysql 的博客管理系统 基于SpringBoot+Thymeleaf+Mysql 的博客管理系统1、前期分析(1) 界面(2) 功能分析(3) 实体分析(4)实体ER图、功能图2、功能实现模块(1) 登陆注册(2) 个人信息管理(3) 后端管理(4) 管理员端用户信息管理(5) 新增博客(6) 博客管理(7) 博客修改页(8) 博客图廊(9) 博客详情页(10) 首页三模块功能(11) 列表页(12)错误界面(13) 评论功能(14) 登录拦截 / 异常处理3、重要代码(1)前端部分(2)实体类(3)Dao层(4)Service层 阅读详情

相关推荐

Springboot+Mybatis+Thymeleaf

在Springboot启动类配置上添加上@MapperScan注解即可。方法一:在application.yaml配置以下数据源(看情况自行更改)方法二:或在application.properties。在application.properties 中添加。pom.xml 中添加 pagehelper依赖。在service层需要分页的对象添加,拦截即可。这边是简单的写了一个条件查询,新增和删除。Mapper.xml 文件。

kzi_liu的博客 1797

【C00148】基于Springboot+Thymeleaf的大学生实习管理系统-有报告(JavaWeb、程序设计)

本项目是基于Springboot+Thymeleaf的大学生实习管理系统,项目分为三种权限:管理员、教师和学生;管理员功能:学生信息管理、教师信息管理、生产实习信息管理、顶岗实习信息管理;生产实习申请、我的生产实习、我的成绩、我的申请、顶岗实习申请、我的顶岗实习、我的成绩、我的申请、生产实习管理、生产实习过程管理、生产实习成绩统计、顶岗实习管理、系统管理(用户管理、角色管理、菜单管理)、分享等;

mataodehtml的博客 992

SpringBoot+mybatis+thymeleaf实现登录功能

项目文件目录一栏 2.开始工作 先按照上图建立好相应的controller,mapper等文件。 接着进行一个配置 首先是application.properties server.port=8080#启动端口 #加载Mybatis配置文件 mybatis.mapper-locations = classpath:mapper/*.xml #数据源必填项 spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver spring.data.

Rmx的技术小站 2886

Spring boot 实战-整合MyBatis和thymeleaf

Spring boot 实战 搭建第一个spring-boot项目 访问 https://start.spring.io/ , 选择好之后, 点击 generate, 会生成对应的压缩包。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RHWTl5SM-1634043912707)(E:\files\work\books\write\itboat008\spring\springboot\image-20211009193520293.png)] idea 导入对应

zhouzhou7601881的博客 734

SpringBoot整合Mybatis与Thymeleaf实战Demo项目

SpringBoot以“约定优于配置”为核心理念,极大简化了Spring应用的初始搭建与开发过程。其四大核心特性包括:起步依赖(Starter Dependencies)自动装配(Auto-configuration)内嵌式Web服务器(如Tomcat、Jetty)和外部化配置。通过等依赖,开发者无需手动管理繁琐的依赖版本与配置。在中配置Druid数据源时,需遵循命名空间。以下是一个典型的生产级配置示例:spring:druid:参数说明如下:参数。

weixin_36122351的博客 1091

SpringBoot+Mybatis+Thymeleaf论坛系统开发实战

本文还有配套的精品资源,点击获取 简介:本项目利用SpringBoot、Mybatis和Thymeleaf技术框架构建了一个BBS论坛系统,通过简化配置和集成优化了Web应用的开发。SpringBoot负责应用的快速启动和配置简化,Mybatis提供灵活的SQL操作和映射,而Thymeleaf作为模板引擎在前后端分离中发挥重要作用。项目包含用户、帖子、板块和权限等模块,涉及...

weixin_35705784的博客 1362

springboot 整合mybatis与使用thymeleaf模板实现前后端互通简单例子详解

springboot+mybatis简单介绍eclipse安装spring插件建立springboot项目pom.xmlapplication.properties包及文件GeneratorDisplay.javaMyMapper.javageneratorConfig.xmlClientService.javaClientServiceImpl.javaDemoApplicatioc.javai...

Freelife的博客 1558

springboot集成mybatis用thymeleaf进行详细的增删改查(适合刚进公司的新人)

本人的搭载软件为eclipse的spring-tool-suite-3.9.5版本(官网上直接能下到),数据库为mysql,导入程序直接可以运行,增删改查每个模块都很详细,适合刚进入公司的新人或者毕业生进行简单业务处理,有很强的参考价值,欢迎下载

SpringBoot+MyBatis+Thymeleaf最简洁最完整中小型web前后端开发模板

最近整理了一篇基于SpringBoot前后端完整的开发框架,这个框架的优点是基本无配置,开发简单对于前端基础薄弱的甚至无前端基础的,只要通过简单的学习也能够开发出一个完整的前后端系统出来,本着开源的目的介绍完本篇后会将我整理一个星期做的基于SpringBoot+MyBatis+Thymeleaf的一个小型的系统模型附上链接,有需要的朋友可以自行下载,有问题可以留言~~ 本篇重点介绍整合Sprin...

qq_38963614的博客 2919

【BAAS】基于supabase的知识库详细设计

为满足快速开发需要和减少开发及维护成本,使用BAAS(Backend-as-a-Service)模式可以很好的降低我们的后端维护成本,并提高前端对接效率。一般来说,BAAS是一种云服务模式,BaaS供应商会为提供一些通用的能力,例如用户身份验证、数据库管理、远程更新和推送通知(针对移动应用程序),以及云存储和自托管。BaaS最主流的是Google的firebase,具有相当完善的功能和集成方案,但他是收费的,而且在我们实际项目中,可能需要私有化部署,这时就需要一些开源的替代方案,例如主流的。

Ric的博客 1781

个人信息保护合规审计人员(中级)能力测试试卷

本文是关于个人信息保护合规考试的试题解析,内容涵盖《个人信息保护法》相关规定。试卷包含单选题、多选题、判断题、简答题和案例分析题五种题型,总分100分,考试时间120分钟。试题重点考察个人信息处理的基本原则、敏感个人信息处理要求、合规审计流程、个人信息保护影响评估等内容。通过案例分析题详细解析了人脸识别登录、数据共享、跨境传输等场景下的合规要求。参考答案均严格依据《个人信息保护法》等法律法规,为个人信息处理活动提供了明确的合规指引。

qq_41525079的博客 850

springboot-mybatis-kotlin-maven

springboot-mybatis-kotlin-maven 最近在学习kotlin, 写了一个后台服务的例子,用到的技术如下: kotlin spring boot mybatis maven mysql thymeleaf logback 代码请移步码云:点这里

On the way ..... 876

科研党必备:Zotero+Deepseek 打造AI文献阅读助手(附详细插件配置指南)

本文详细介绍了如何利用Zotero和Deepseek打造AI文献阅读助手,提升科研效率。从Zotero基础安装到中文文献处理插件茉莉花的配置,再到Deepseek API的集成与模型选择策略,全面覆盖了AI辅助阅读的关键环节。特别适合需要高效管理海量文献的科研工作者,显著提升文献筛选和分析速度。

backprop5master的博客 424

SpringBoot

Spring Boot系列(七):springboot+mybatis多数据源最简解决方案Spring Boot系列(六):如何优雅的使用mybatisSpring Boot系列(五):spring data jpa的使用Spring Boot系列(四):thymeleaf使用详解Spring Boot系列(三):Spring Boot中Redis的使用Spring Boot系列(二):web综合...

qq_35598240的博客 329

吉比特-笔试

1. 题一:打雷后下雨的概率是80%,而打闪电后下雨的概率是70%,那么即打雷又打闪电后下雨的概率是多少?   答:打雷后下雨和打闪电后下雨都是独立事件,P=1-又打雷又闪电但没下雨的概率= 1 - 0.2 *0.3 = 94%        题二:打雷后下雨的概率是80%,但是没打闪电后下雨的概率是20%,那么打雷了但没打闪电后下雨的概率是多少?答:P=0.8 *0.2 / ( 0.8 *0

naturism的专栏 2496

Ubuntu22.04中通过conda快速部署PyTorch开发环境(CPU/GPU双版本实战)

本文详细介绍了在Ubuntu22.04系统中,如何利用Conda高效部署PyTorch开发环境。文章分别提供了CPU与GPU双版本的实战教程,涵盖环境创建、镜像加速、版本匹配及深度验证等关键步骤,旨在帮助开发者快速搭建稳定、兼容的深度学习环境,从而专注于模型开发。

rose2的博客 556

SpringBoot+Mybatis+thymeleaf实现小项目

总是看着别人的博客有绚丽、多彩、精致的封面,可是自己写博客选择封面的时候总感觉不符合题意、丑陋、不够精致。那么恭喜您点进了此博客,你将解决该问题,那么请跟随我的脚步,走进今天的个人心得分享吧! 想永久记住我?点赞收藏起来吧。🦄

shshhshshh的博客 2053

RK3568下GPIO模拟串口

在嵌入式开发中,硬件 UART 资源可能被其他外设占用。此时,通过 GPIO 模拟 UART(软串口)成为一种灵活的解决方案。本文基于 RK3568 平台,结合 Linux 内核模块,实现高精度软串口通信,并深入分析关键技术细节。可以看到已经接收到数据了,可以自己创建自定义的设备文件到/dev下,也可以按照串口设备的标准创建一个设备,后面有时间我写一篇和标准串口设备结合的gpio模拟串口文章。RK3568 GPIO 模拟串口(软串口)实现详解。将编译好的驱动放到板子上运行。再写个Makefile。

文石_2009的博客 364

SpringBoot+MyBatis+thymeleaf 增删改查实例(超详细)

导语: 刚学springboot几天,做了个小例子,感觉springboot很好用。相比ssm,springboot除去了很多的繁杂的配置,使用起来非常方便。而且springboot内置了tomcat、jetty这两个web服务器,也不需要你再去配置web服务器,方便刚学springboot或者想学springboot的朋友,下面就带你一步一步做成一个小例子 项目开发环境 开发工具:IDEA 20...

Woo_home的博客 2万+

C#部署YOLO三种方案深度实测:OpenCV DNN vs ONNX Runtime vs TensorRT

在工业视觉项目落地阶段,C#生态下部署YOLO模型主要有三条技术路线。很多开发者仅凭经验选型,往往在部署后期踩中性能瓶颈、兼容故障、维护成本超标的坑。本文基于工控机常见硬件配置,针对YOLOv8系列模型做控制变量实测,从推理性能、部署难度、工业稳定性、综合成本等多个维度做横向对比,给出可直接落地的选型结论。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 466

基于江协科技STM32创建HAL库工程模板

基于江协科技STM32入门教程创建的HAL库工程模板

2401_82728381的博客 1133

IDEA整合springboot+Thymeleaf+Mybatis

大家好,这篇文章我将和大家一起从0搭建基于springboot+Thymeleaf+Mybatis的项目搭建,并且实现简单的登录功能 1.首先声明一下,阅读这篇文章时,建议你对ssm框架有所了解,而且springboot有一定的了解,不然可能会有些吃力,在文章的下面介绍中,笔者不仅会一步步的展示搭建的每一个环节,还会适当的给出源码解析,文章篇幅很长,但是静下心阅读,对你一定有所帮助,好了,废话不多...

BrotherJinJin的博客 2999

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SpringBoot简单集成Mybatis、thymeleaf例子

记录下SpringBoot集成Mybatis, thymeleaf例子,以便后续查询记录。3. 创建控制器, EmployeeController。2. 配置yml文件。5. mapper映射。4. 创建服务,实现。

weixin_43822217的博客 1383

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Springboot + Mybatis + Thymeleaf 整合教程

Springboot + Mybatis + Thymeleaf整合 首先我们来讲一下springboot,springboot主张无xml配置,但是还是需要一些最基础的信息配置的,例如sql账号密码的设置,在简洁你的账号密码还是需要你自己配置的,它是没办法帮你自动生成的。所以一般配置文件...

回首一辈子 4369

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

SpringBoot整合Thymeleaf+Mybatis

关于SpringBoot 注:本文讲述的所有代码均可在微信公众号“最高权限比特流”中回复4获取 SpringBoot是一种微服务框架。 何为微服务框架? 在解释微服务框架前,我们需要先拆分一下SpringBoot这个单词。Spring作为java程序猿的我们,应当是颇为熟悉了。Spring意为春天,程序猿的春天。其强大的IOC容器,为我们的开发提供了便捷。而在开发过程中,我们通常使用SSM框架整合...

最高权限比特流 1906

springboot+thymeleaf+mybatis+pagehelper小案例,及公共资源整合

springboot+thymeleaf+mybatis+pagehelper小案例,及公共资源整合 springboot+thymeleaf+mybatis+pagehelper小案例 搞了两天,搭建了一个小框子,看了看thymeleaf的文档,在此记录一下 pom.xml导入pagehelper 使用springboot时一定要导入**pagehelper-spring-boot-starter**这种形式的不然会报错 <dependency> <groupId>com

qq_58362898的博客 1078
上一篇: Spring-spring缓存和ehcache(二)
下一篇: 简单理解常用设计模式(一)简单工厂-附加UML解释
gcc_front
博客等级 码龄9年 16粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值