Spring boot 的入门者世界(介绍和注解)

目录

一·了解springboot

1.springboot的简介

2.springboot的优缺点

优点

缺点

二·springboot常用注解

1.SpringBootApplication注解

2.SpringComponentScan注解

特性:

注解方式:

(1)扫描包

(2)扫描类

3.SpringBootConfiguration注解

4.EnableAutoConfiguration注解

5.元注解

6.基本注解

7.启动注解

8.HTTP注解

9.其他注解

三.Thymeleaf 常用标签

1.Thymeleaf 常用标签

2.Thymeleaf 主要语法

3.Thymeleaf 基本语法


一·了解springboot

1.springboot的简介

SpringBoot 是 Java 社区最有影响力之一的开源的Spring后端开发框架,也是企业级应用开发的首选技术,Spring Boot 拥有良好的技术基因,它是伴随着Spring 4 而产生的技术框架,在继承了 Spirng 框架所有优点的同时也为开发者带来了巨大的便利,与普通的 Spring 项目相比,SpringBoot 可以让项目的配置更简化、编码更简化、部署更方便,为开发者提供了开箱即用的良好体验,进一步提升了开发者的开发效率。

2.springboot的优缺点

优点

(1)可以快速创建Spring项目及其与主流框架集成;

(2)使用嵌入式容器Servlet容器,应用无须打包成War包;

(3)starters自动依赖与版本控制;

(4)诸多自动配置,简化开发;极大程度自动化配置Spring和第三方库;

(5)生产就绪功能;

(6)无需配置XML,开箱即用;

缺点

(1)Spring的配置灵活性很高,但是同时配置也较为繁琐,对开发人员的要求较高。

(2)相对于轻量级的框架而言,Spring框架因其历史悠久,模块较多,某些模块相对其它框架而言显得比较重。

二·springboot常用注解

1.SpringBootApplication注解

(1)@ComponentScan注解,主要用于类或接口上主要是指定扫描路径,spring会把指定路径下带有指定注解的类自动装配到bean容器里。

(2)@SpringBootConfiguration注解,这个注解主要是继承@Configuration注解,主要用于加载配置文件。这也是一个组合注解,SpringBootConfiguration注解可以用java代码的形式实现spring中xml配置文件配置的效果,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。

(3)@EnableAutoConfiguration注解,可以根据classpath中的jar依赖,自动注册bean,一般用于类或接口上,它尝试根据您添加的jar依赖项自动配置Spring应用程序。

2.SpringComponentScan注解

Spring中@ComponentScan注解的作用就是根据定义的扫描路径,把符合扫描规则的类装配到spring的bean容器中。

特性:

(1)自定扫描路径下边带有@Controller,@Service,@Repository,@Component注解加入spring容器

(2)通过includeFilters加入扫描路径下没有以上注解的类加入spring容器

(3)通过excludeFilters过滤出不用加入spring容器的类

(4)自定义增加了@Component注解的注解方式

注解方式:

(1)扫描包
@ComponentScan(basePackages = “”)     //单个
@ComponentScan(basePackages = {“xxx”,“aaa”,“…”})   //多个
@Configuration
@ComponentScan("com.51gjie.spring.service")
public class MyConfig {}

@Configuration
@ComponentScan("com.51gjie.spring.dao","com.51gjie.spring.service")
public class MyConfig {}

@Configuration
@ComponentScan("com.51gjie.spring.*")   //通配符匹配所有的包
public class MyConfig {}
(2)扫描类
@ComponentScan(basePackageClasses = “”)   //单个
@ComponentScan(basePackageClasses = {“aaa”,“bbb”,“…”})  //多个
@Configuration
@ComponentScan(basePackageClasses = HelloController.class)
public class MyConfig {
}

3.SpringBootConfiguration注解

SpringBootConfiguration是SpringBoot项目的配置注解,这也是一个组合注解,SpringBootConfiguration注解可以用java代码的形式实现spring中xml配置文件配置的效果,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。

4.EnableAutoConfiguration注解

EnableAutoConfiguration是SpringBoot的一个特性,可以根据classpath中的jar依赖,自动注册bean,一般用于类或接口上,它尝试根据您添加的jar依赖项自动配置Spring应用程序。

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
    String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";

    Class[] exclude() default {};

    String[] excludeName() default {};
}

5.元注解

@Documented:将会在被此注解注解的元素的javadoc文档中列出注解,一般都打上这个注解没坏处

@Target:注解能被应用的目标元素,比如类、方法、属性、参数等等,需要仔细思考

@Retention:仅在源码保留,还是保留到编译后的字节码,还是到运行时也去加载,超过90%的应用会在运行时去解析注解进行额外的处理,所以大部分情况我们都会设置配置为RetentionPolicy.RUNTIME

@Inherited:如果子类没有定义注解的话,能自动从父类获取定义了继承属性的注解,比如Spring的@Service是没有继承特性的,但是@Transactional是有继承特性的,在OO继承体系中使用Spring注解的时候请特别注意这点,理所当然认为注解是能被子类继承的话可能会引起不必要的Bug,需要仔细斟酌是否开启继承

@Repeatable:Java 8引入的特性,通过关联注解容器定义可重复注解,小小语法糖提高了代码可读性,对于元素有多个重复注解其实是很常见的事情,比如某方法可以是A角色可以访问也可以是B角色可以访问,某方法需要定时任务执行,要在A条件执行也需要在B条件执行

@Native:是否在.h头文件中生成被标记的字段,除非原生程序需要和Java程序交互,否则很少会用到这个元注解

6.基本注解

@Service: 注解在类上,表示这是一个业务层bean

@Controller:注解在类上,表示这是一个控制层bean

@Repository: 注解在类上,表示这是一个数据访问层bean

@Component: 注解在类上,表示通用bean ,value不写默认就是类名首字母小写

@Autowired:按类型注入.默认属性required= true

@Resource: 按名称装配。

7.启动注解

@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解

@ComponentScan:让spring Boot扫描到Configuration类并把它加入到程序上下文

@SpringBootConfiguration :等同于spring的XML配置文件;使用Java代码可以检查类型安全。

 @SpringAutoConfiguration :自动配置

8.HTTP注解

@RequestBody:HTTP请求获取请求体(处理复杂数据,比如JSON)

@RequestHeader:HTTP请求获取请求头

@CookieValue:HTTP请求获取cookie

@SessionAttribute:HTTP请求获取会话

@RequestAttribute:HTTP请求获取请求的Attribute中(比如过滤器和拦截器手动设置的一些临时数据),

@RequestParam:HTTP请求获取请求参数(处理简单数据,键值对),

@PathVariable:HTTP请求获取路径片段,

@MatrixAttribute:HTTP请求获取矩阵变量允许我们采用特殊的规则在URL路径后加参数(分号区分不同参数,逗号为参数增加多个值)

9.其他注解

@Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。

@ConfigurationProperties:给对象赋值,将注解转换成对象。

@RequestMapping:和请求报文是做对应的

@EnableCaching:注解驱动的缓存管理功能

@GeneratedValue:用于标注主键的生成策略,通过 strategy 属性指定

@JsonIgnore:作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。

@JoinColumn(name=”loginId”):一对一:本表中指向另一个表的外键。一对多:另一个表指向本表的外键

三.Thymeleaf 常用标签

1.Thymeleaf 常用标签

th:insert               页面片段包含 (类似JSP中的include标签)

th:replace            页面片段包含(类似JSP中的 include标签)

th:each              元素遍历 (类似JSP 中的 c:forEach标签)

th:if                       条件判断,如果为真

th:unless              条件判断,如果为假

th:switch               条件判断,进行选择性匹配

th:case                 条件判断,进行选择性匹配

th:object               变量声明

th:with                  变量声明

th:attr                   通用属性修改

th:attrprepend      通用属性修改,将计算结果追加前缀到现有属性值

th:attrappend       通用属性修改,将计算结果追加后缀到现有属性值

th:value                属性值修改,指定标签属性值 

th:href                  用于设定链接地址

th:src                    用于设定链接地址

th:text                   用于指定标签显示的文本内容

th:utext                 用于指定标签显示的文本内容,对特殊标签不转义

th:fragment           声明片段

th:remove             移除片段

2.Thymeleaf 主要语法

变量表达式           ${...}

选择变量表达式     *{...}

消息表达式            #{...}

链接 URL 表达式   @{...}

片段表达式             ~{...}

3.Thymeleaf 基本语法

标准表达式:

Thymeleaf 为变量所在域提供了一些内置对象,如下

#ctx:上下文对象

#vars:上下文变量

#locale:上下文区域设置

#request: (仅限 Web Context) HttpServletRequest 对象

#response:(仅限 Web Context) HttpServletResponse 对象

#session:(仅限 Web Context) HttpSession 对象

#servletContext :(仅限Web Context) ServletContext 对象

四、代码示例

展示了一个基本的 RESTful API:

1.创建一个名为 "HelloController" 的类文件:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

2.创建一个名为 "Application" 的主启动类文件:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

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

3.在项目的根目录下创建一个名为 "application.properties" 的配置文件,添加以下内容:

server.port=8080

4.运行 "Application" 类中的 main 方法。

5.在浏览器或者 Postman 中访问 http://localhost:8080/hello,将会返回 "Hello, World!" 的响应结果。

这是一个非常简单的示例,展示了如何使用 Spring Boot 创建一个简单的 RESTful API。可以根据自己的需求进行扩展和修改。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值