You idol is shattered in the dust to prove that God’s dust is greaterthan your idol.
你的偶像委散在尘土中了,这可证明神的尘土比你的偶像还伟大。
Maven配置 Maven仓库
Maven头部
1 2 3 4 5 <?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 >
Maven资源导出配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <build > <resources > <resource > <directory > src/main/resources</directory > <excludes > <exclude > **/*.properties</exclude > <exclude > **/*.xml</exclude > </excludes > <filtering > false</filtering > </resource > <resource > <directory > src/main/java</directory > <includes > <include > **/*.properties</include > <include > **/*.xml</include > </includes > <filtering > false</filtering > </resource > </resources > </build >
web.xml web.xml
头文件要保持最新,与maven版本一致
1 2 3 4 5 6 7 <web-app xmlns ="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version ="4.0" metadata-complete ="true" > </web-app >
Servlet配置 Servlet依赖包 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <dependencies > <dependency > <groupId > javax.servlet</groupId > <artifactId > javax.servlet-api</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > javax.servlet.jsp</groupId > <artifactId > javax.servlet.jsp-api</artifactId > <version > 版本号</version > </dependency > </dependencies >
JSP依赖包 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <dependencies > <dependency > <groupId > javax.servlet</groupId > <artifactId > javax.servlet-api</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > javax.servlet.jsp</groupId > <artifactId > javax.servlet.jsp-api</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > javax.servlet.jsp.jstl</groupId > <artifactId > jstl-api</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > taglibs</groupId > <artifactId > standard</artifactId > <version > 版本号</version > </dependency > </dependencies >
数据库依赖包 1 2 3 4 5 6 7 <dependencies > <dependency > <groupId > mysql</groupId > <artifactId > mysql-connector-java</artifactId > <version > 版本号</version > </dependency > </dependencies >
Mybatis配置 Maven导入依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <dependencies > <dependency > <groupId > mysql</groupId > <artifactId > mysql-connector-java</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > junit</groupId > <artifactId > junit</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > org.mybatis</groupId > <artifactId > mybatis</artifactId > <version > 版本号</version > </dependency > </dependencies >
从 XML 中构建 SqlSessionFactory
在rescouces
文件下创建mybatis-config.xml
配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd" > <configuration > <environments default ="development" > <environment id ="development" > <transactionManager type ="JDBC" /> <dataSource type ="POOLED" > <property name ="driver" value ="${driver}" /> <property name ="url" value ="${url}" /> <property name ="username" value ="${username}" /> <property name ="password" value ="${password}" /> </dataSource > </environment > </environments > <mappers > <mapper resource ="org/mybatis/example/BlogMapper.xml" /> </mappers > </configuration >
从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例
1 2 3 String resource = "org/mybatis/example/mybatis-config.xml" ; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
Mybatis日志
SLF4J | LOG4J(deprecated since 3.5.9) | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING
STDOUT_LOGGING 标准日志输出
mybatis-config.xml
1 2 3 4 <settings > <setting name ="logImpl" value ="STDOUT_LOGGING" /> </settings >
LOG4J(deprecated since 3.5.9)
1 2 3 4 <settings > <setting name ="logImpl" value ="LOG4J" /> </settings >
使用LOG4J需要添加propertise配置文件log4j.properties
(直接百度)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 log4j.rootLogger =DEBUG,console,file log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold =DEBUG log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern =[%c]-%m%n log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File =./log/bobo.log log4j.appender.file.MaxFileSize =10mb log4j.appender.file.Threshold =DEBUG log4j.appender.file.layout =org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =[%p][%d{yy-MM-dd}][%c]%m%n log4j.logger.org.mybatis =DEBUG log4j.logger.java.sql =DEBUG log4j.logger.java.sql.Statement =DEBUG log4j.logger.java.sql.ResultSet =DEBUG log4j.logger.java.sql.PreparedStatement =DEBUG
Spring配置 maven导入依赖
1 2 3 4 5 6 7 8 9 10 11 12 <dependencies > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-webmvc</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-jdbc</artifactId > <version > 版本号</version > </dependency > </dependencies >
IOC配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?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 https://www.springframework.org/schema/beans/spring-beans.xsd" > <bean id ="..." class ="..." > </bean > <bean id ="..." class ="..." > </bean > </beans >
AOP配置
XML配置
1 2 3 4 5 6 7 8 9 10 11 12 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns ="http://www.springframework.org/schema/beans" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop ="http://www.springframework.org/schema/aop" xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd " > </beans >
Maven配置
1 2 3 4 5 <dependency > <groupId > org.aspectj</groupId > <artifactId > aspectjweaver</artifactId > <version > 版本号</version > </dependency >
Spring-Mybatis整合 导入Maven依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 <dependencies > <dependency > <groupId > junit</groupId > <artifactId > junit</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > mysql</groupId > <artifactId > mysql-connector-java</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > org.mybatis</groupId > <artifactId > mybatis</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-webmvc</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-jdbc</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > org.aspectj</groupId > <artifactId > aspectjweaver</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > org.mybatis</groupId > <artifactId > mybatis-spring</artifactId > <version > 版本号</version > </dependency > <dependency > <groupId > org.projectlombok</groupId > <artifactId > lombok</artifactId > <version > 版本号</version > </dependency > </dependencies >
注解 Spring 自动装配 注解配置 从 Spring 2.5 开始就可以使用注解 来配置依赖注入。而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注解,将 bean 配置移动到组件类本身。
在 XML 注入之前进行注解注入,因此后者的配置将通过两种方式的属性连线被前者重写。
使用注解配置文件 applicaitonContext.xml
导入context
约束
1 2 3 4 5 6 7 8 9 10 11 12 13 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns ="http://www.springframework.org/schema/beans" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns:context ="http://www.springframework.org/schema/context" xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd" > <context:annotation-config /> </beans >
注解
注解 & 描述
@Required
@Required 注解应用于 bean 属性的 setter 方法。
@Autowired
@Autowired 注解可以应用到 bean 属性的 setter 方法,非 setter 方法,构造函数和属性。
@Qualifier
通过指定确切的将被连线的 bean,@Autowired 和 @Qualifier 注解可以用来删除混乱。
JSR-250 Annotations
Spring 支持 JSR-250 的基础的注解,其中包括了 @Resource,@PostConstruct 和 @PreDestroy 注解。
@Autowired
首先,我们从所属范围来看,事实上这个注解是属于 Spring 的容器配置的一个注解@Autowired 注解是一个用于容器 ( container ) 配置的注解。
其次,我们可以直接从字面意思来看,@autowired 注解来源于英文单词 autowire,这个单词的意思是自动装配的意思。
自动装配指的就是使用将 Spring 容器中的 bean 自动的和我们需要这个 bean 的类组装在一起。
将 @Autowired 注解应用于构造函数
将 @Autowired 注解应用于 setter 方法
将 @Autowired 注解应用于具有任意名称和多个参数的方法
将 @Autowired 注解应用于字段,或者将其与构造函数混合
将 @Autowired 注解添加到需要该类型数组的字段或方法,则 Spring 会从 ApplicationContext 中搜寻符合指定类型的所有 bean
…
@Qualifier 可能会有这样一种情况,当你创建多个具有相同类型的 bean 时,并且想要用一个属性只为它们其中的一个进行装配,在这种情况下,你可以使用 @Qualifier 注解和 @Autowired 注解通过指定哪一个真正的 bean 将会被装配来消除混乱。
@Required @Required 注解应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。
Java注解配置 @Resource @Resource ,用来激活一个命名资源(namedresource)的依赖注入,在JavaEE应用程序中,该注解被典型地转换为绑定于JNDI context中的一个对象。
spring确实支持使用@Resource通过JNDIlookup来解析对象,默认地,拥有与@Resource注解所提供名字相匹配的“beanname(bean名字)”的Spring管理对象会被注入。
@Resource装配顺序
如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常;
如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常;
如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常;
如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配。
@Configuration 和 @Bean 注解 @Configuration 注解类表示这个类可以使用 Spring IoC 容器作为 bean 定义的来源。
@Bean 注解告诉 Spring,一个带有 @Bean 的注解方法将返回一个对象,该对象应该被注册为在 Spring 应用程序上下文中的 bean。
1 2 3 4 5 6 7 8 import org.springframework.context.annotation.*;@Configuration public class HelloWorldConfig { @Bean public HelloWorld helloWorld () { return new HelloWorld(); } }
Spring使用注解开发 使用注解开发,必须要保证aop
的包导入
aop
存在于spring-webmvc
中
同样需要导入context
约束,增加注解支持
1 2 3 4 5 方法一:<context:component-scan base-package ="包" /> 方法二:<context:annotation-config />
使用component-scan
用于把当前类对象存入spring容器中
用于指定bean的id。当我们不写时,它的默认值是当前类名,且首字母改小写。
@Component 衍生注解
@Repository 与 @Component功能相似,作用在dao层
@Service 与 @Component功能相似,作用在service层
@Controller 与 @Component功能相似,作用在controller层
使用 @Scope
作用就和在bean标签中使用scope属性实现的功能是一样的
可取值:prototype、request、ression、singleton
用于指定bean的作用范围
指定范围的取值
SpringMVC相关注解 @Controller @Controller
注解表明了一个类是作为控制器的角色而存在的。Spring不要求你去继承任何控制器基类,也不要求你去实现Servlet的那套API。当然,如果你需要的话也可以去使用任何与Servlet相关的特性和设施。
@Controller
注解可以认为是被标注类的原型(stereotype),表明了这个类所承担的角色。分派器(DispatcherServlet
)会扫描所有注解了@Controller
的类,检测其中通过@RequestMapping
注解配置的方法。
使用这个注解的类中的所有的方法,如果返回值是String
,并且有具体页面可以跳转,那么就会被视图解析器解析
@RequestMapping 你可以使用@RequestMapping
注解来将请求URL,映射到整个类上或某个特定的处理器方法上。
一般来说,类级别的注解负责将一个特定(或符合某种模式)的请求路径映射到一个控制器上,同时通过方法级别的注解来细化映射,即根据特定的HTTP请求方法(“GET”“POST”方法等)、HTTP请求中是否携带特定参数等条件,将请求映射到匹配的方法上。
1 @RequestMapping(path = "", method = )
method
解释
RequestMethod.GET
它仅接受GET方法的请求
RequestMethod.POST
它仅接受GET方法的请求
点击跳转官方注解
@RequestMapping 处理多个注解
1 2 3 4 5 6 @RequestMapping(value = { "", "/page", "page*", "view/*,**/msg" })
带有 @RequestParam 的 @RequestMapping
@RequestParam 注解使用的时候可以有一个值,也可以没有值。这个值指定了需要被映射到处理方法参数的请求参数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 @RequestMapping("/home") public class IndexController { @RequestMapping(value = "/id") String getIdByValue (@RequestParam("id") String personId) { System.out.println("ID is " + personId); return "Get ID from query string of URL with value element" ; } @RequestMapping(value = "/personId") String getId (@RequestParam String personId) { System.out.println("ID is " + personId); return "Get ID from query string of URL without value element" ; } }
@RequestParam 注解的 required 这个参数定义了参数值是否是必须要传的。
1 @RequestParam(value = "person", required = false)
@RequestParam 的 defaultValue 取值就是用来给取值为空的请求参数提供一个默认值的。
1 @RequestParam(value = "person", defaultValue = "Bobo")
@RequestMapping 快捷方式
Spring 4.3 引入了方法级注解的变体,也被叫做 @RequestMapping 的组合注解。组合注解可以更好的表达被注解方法的语义。它们所扮演的角色就是针对 @RequestMapping 的封装,而且成了定义端点的标准方法。
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
@ResponseBody注解 注解 @ResponseBody,使用在控制层(controller)的方法上
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区,进而将数据返回给客户端。
POST模式下,使用@RequestBody绑定请求对象,Spring会帮你进行协议转换,将Json、Xml协议转换成你需要的对象。@ResponseBody可以标注任何对象,由Spring完成对象——协议的转换。
1 2 3 4 5 @RequestMapping("/login") @ResponseBody public User login (User user) { return user; }
User字段:userName pwd 那么在前台接收到的数据为:’{“userName”:”xxx”,”pwd”:”xxx”}’
@RestController注解 在Spring中@RestController的作用等同于@Controller + @ResponseBody
不会走视图解析器,直接返回一个字符串
SpringMVC对RESTful风格的支持 @PathVariable
@PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值
当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。
1 @RequestMapping("/owners/{ownerId}")
SpringBoot相关注解 @ConfigurationProperties 通过 SpringBoot 提供的 @ConfigurationProperties 注解,可以将全局配置文件中的配置数据绑定到 JavaBean 中。
告诉 SpringBoot 将本类中的所有属性和配置文件中相关的配置进行绑定;
prefix = “ClassName”:配置文件中哪个下面的所有属性进行一一映射
点击跳转yaml使用注解给属性赋值
@Value 只需要读取配置文件中的某一个配置时,可以通过 @Value 注解获取
点击跳转yaml使用注解给属性赋值
@Value 与 @ConfigurationProperties 对比
@Value 和 @ConfigurationProperties 注解都能读取配置文件中的属性值并绑定到 JavaBean 中,但两者存在以下不同。
使用位置不同
功能不同
松散绑定支持不同
@ConfigurationProperties:支持松散绑定(松散语法),例如实体类 Person 中有一个属性为 lastName,那么配置文件中的属性名支持以下写法:
person.firstName
person.first-name
person.first_name
PERSON_FIRST_NAME
@Vaule:不支持松散绑定。
SpEL 支持不同
@ConfigurationProperties:不支持 SpEL 表达式;
@Value:支持 SpEL 表达式。
复杂类型封装
应用场景不同
@Value 和 @ConfigurationProperties 两个注解之间,并没有明显的优劣之分,它们只是适合的应用场景不同而已。
若只是获取配置文件中的某项值,则推荐使用 @Value 注解;
若专门编写了一个 JavaBean 来和配置文件进行映射,则建议使用 @ConfigurationProperties 注解。
@PropertySource 如果将所有的配置都集中到 application.properties 或 application.yml 中,那么这个配置文件会十分的臃肿且难以维护,因此我们通常会将与 SpringBoot 无关的配置(例如自定义配置)提取出来,写在一个单独的配置文件中,并在对应的 JavaBean 上使用 @PropertySource 注解指向该配置文件。
点击跳转给属性赋值的两种方法之一
@Conditional派生注解 spring.factories 文件中的所有自动配置类(xxxAutoConfiguration),都是必须在一定的条件下才会作为组件添加到容器中,配置的内容才会生效。这些限制条件在 SpringBoot 中以 @Conditional 派生注解的形式体现,如下表。
注解
生效条件
@ConditionalOnJava
应用使用指定的 Java 版本时生效
@ConditionalOnBean
容器中存在指定的 Bean 时生效
@ConditionalOnMissingBean
容器中不存在指定的 Bean 时生效
@ConditionalOnExpression
满足指定的 SpEL 表达式时生效
@ConditionalOnClass
存在指定的类时生效
@ConditionalOnMissingClass
不存在指定的类时生效
@ConditionalOnSingleCandidate
容器中只存在一个指定的 Bean 或这个 Bean 为首选 Bean 时生效
@ConditionalOnProperty
系统中指定属性存在指定的值时生效
@ConditionalOnResource
类路径下存在指定的资源文件时生效
@ConditionalOnWebApplication
当前应用是 web 应用时生效
@ConditionalOnNotWebApplication
当前应用不是 web 应用生效
SpringMVC配置 基础配置
Maven依赖
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 <dependencies > <dependency > <groupId > junit</groupId > <artifactId > junit</artifactId > <version > 4.13</version > </dependency > <dependency > <groupId > org.springframework</groupId > <artifactId > spring-webmvc</artifactId > <version > 5.3.10</version > </dependency > <dependency > <groupId > javax.servlet</groupId > <artifactId > servlet-api</artifactId > <version > 2.5</version > </dependency > <dependency > <groupId > javax.servlet</groupId > <artifactId > jstl</artifactId > <version > 1.2</version > </dependency > <dependency > <groupId > javax.servlet.jsp</groupId > <artifactId > jsp-api</artifactId > <version > 2.2</version > </dependency > </dependencies >
web.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns ="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version ="4.0" > <servlet > <servlet-name > springmvc</servlet-name > <servlet-class > org.springframework.web.servlet.DispatcherServlet</servlet-class > <init-param > <param-name > contextConfigLocation</param-name > <param-value > classpath:springmvc-servlet.xml</param-value > </init-param > <load-on-startup > 1</load-on-startup > </servlet > <servlet-mapping > <servlet-name > app</servlet-name > <url-pattern > /app/*</url-pattern > </servlet-mapping > </web-app >
springmvc-servlet.xml
处理器映射器、处理器适配器 可以不用配置,spring默认配置
视图解析器不可以省略
1 2 3 4 5 6 7 8 9 10 11 <bean class ="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> <bean class ="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter " /> <bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver" id ="InternalResourceViewResolver" > <property name ="prefix" value ="/WEB-INF/jsp/" /> <property name ="suffix" value =".jsp" /> </bean >
BeanNameUrlHandlerMapping:根据bean的名字匹配
注解配置相关
springmvc-servlet.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns ="http://www.springframework.org/schema/beans" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns:context ="http://www.springframework.org/schema/context" xmlns:mvc ="http://www.springframework.org/schema/mvc" xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd" > <context:component-scan base-package ="com.bobo.controller" /> <mvc:default-servlet-handler /> <mvc:annotation-driven /> <bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver " id ="internalResourceViewResolver" > <property name ="prefix" value ="/WEB-INF/jsp/" /> <property name ="suffix" value =".jsp" /> </bean > </beans >
SpringBoot配置 Maven依赖
1 2 3 4 5 6 7 8 9 10 11 <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 > </dependencies >
thymeleaf 使用thymeleaf,Maven依赖
1 2 3 4 5 6 7 8 <dependency > <groupId > org.thymeleaf</groupId > <artifactId > thymeleaf-spring5</artifactId > </dependency > <dependency > <groupId > org.thymeleaf.extras</groupId > <artifactId > thymeleaf-extras-java8time</artifactId > </dependency >
在使用 Thymeleaf 之前,首先要在页面的 html 标签中声明名称空间
1 xmlns:th="http://www.thymeleaf.org"
在 html 标签中声明此名称空间,可避免编辑器出现 html 验证错误,但这一步并非必须进行的,即使我们不声明该命名空间,也不影响 Thymeleaf 的使用。
JDBC pom.xml
导入 JDBC 场景启动器:spring-boot-starter-data-jdbc
1 2 3 4 5 <dependency > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-data-jdbc</artifactId > </dependency >
JDBC 的场景启动器中并没有导入数据库驱动,我们需要根据自身的需求引入所需的数据库驱动。例如,访问 MySQL 数据库时,需要导入 MySQL 的数据库驱动:mysql-connector-java。
1 2 3 4 5 6 <dependency > <groupId > mysql</groupId > <artifactId > mysql-connector-java</artifactId > <scope > runtime</scope > </dependency >
application.properties/yml
在导入了 JDBC 场景启动器和数据库驱动后,接下来我们就可以在配置文件(application.properties/yml)中配置数据源了。
1 2 3 4 5 6 7 spring: datasource: username: 用户名 password: 密码 url: jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false driver-class-name: com.mysql.cj.jdbc.Driver
MyBatis pom.xml
引入 mybatis-spring-boot-starter 的依赖
1 2 3 4 5 6 <dependency > <groupId > org.mybatis.spring.boot</groupId > <artifactId > mybatis-spring-boot-starter</artifactId > <version > 版本号</version > </dependency >
application.properties/yml
1 2 3 4 5 6 7 8 9 10 spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driver spring.datasource.username =用户名 spring.datasource.password =密码 spring.datasource.url =jdbc:mysql://localhost:3306/数据库名?useSSL=false&useUnicode=true&characterEncoding=utf-8 mybatis.type-aliases-package =com.bobo.pojo mybatis.mapper-locations =classpath:mybatis/mapper/*.xml
SpringSecurity pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 <dependencies > <dependency > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-security</artifactId > </dependency > <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 > <exclusions > <exclusion > <groupId > org.junit.vintage</groupId > <artifactId > junit-vintage-engine</artifactId > </exclusion > </exclusions > </dependency > <dependency > <groupId > org.springframework.security</groupId > <artifactId > spring-security-test</artifactId > <scope > test</scope > </dependency > </dependencies >
Shiro pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <dependencies > <dependency > <groupId > org.apache.shiro</groupId > <artifactId > shiro-core</artifactId > <version > 1.8.0</version > </dependency > <dependency > <groupId > org.slf4j</groupId > <artifactId > slf4j-simple</artifactId > <version > 1.7.21</version > <scope > test</scope > </dependency > <dependency > <groupId > org.slf4j</groupId > <artifactId > jcl-over-slf4j</artifactId > <version > 1.7.21</version > <scope > test</scope > </dependency > </dependencies >
Swagger springboot版本使用2.5.6 swagger版本使用3.0.0
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 ><dependencies > <dependency > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-web</artifactId > </dependency > <dependency > <groupId > io.springfox</groupId > <artifactId > springfox-boot-starter</artifactId > <version > 3.0.0</version > </dependency > ></dependencies >
config
1 2 3 4 5 >@Configuration >@EnableOpenApi >public class SwaggerConfig { >}
访问测试 :http://localhost:8080/swagger-ui/index.html ,可以看到swagger的界面