赞
踩
spring框架:负责宏观调控,负责整合其他的第三方的框架
SpringMVC框架: 主要负责前后端数据的交互
Mybatis框架/MybatisPlus框架:持久层框架,简化JDBC操作数据库的方式,提高效率
SpringBoot框架: 采用了更加简化的方式封装了之前的框架,让程序更简单
IOC是一种控制反转的设计思想,由spring容器管理对象的生命周期,降低代码的耦合性。
将所有的对象都交给spring容器管理,容器负责对象的注入
spring容器替你管理一系列需要的类,前提是你需要将这些类表示交给容器进行管理才可,然后在你需要的时候不用自己去定义,容器就会自动帮你进行实例化
实现IOC思想需要DI进行注入。
注入的方式最常用的就是@Aurowired注解,只要加上注解即可,且如果对象是接口,会自动注入实现类。如果对象过多 可以使用@Qualifier("cat")注解进行选择特点的类。且必须与@Aurowired注解同时出现才能使用。
1.1 使用XML形式配置文件管理对象。基本不咋用,一般都是注解使用更方便
Bean 元素:使用该元素定义需要spring容器管理对象
id属性: 全局唯一变量一般类型首字母小写
class属性: class的路径信息,需要写全名
1.2 使用注解的形式进行配置管理的对象
@Bean 使用此注解进行标识是一个要提交给spring容器进行管理的对象
定义一个类,将类在配置类中进行注解@Bean 此方法还是自己进行了创建定义
1.3使用注解@component的形式进行配置管理对象(一般多用注解的形式)
@component定义在类上表示此类是一个提交给容器管理的对象。会自动实例化。
1.4使用@Controller @Service @Repository 形式进行配置管理对象,此方法降低了耦合度 每个表示不同的业务区域
2.1 一个完整的项目需要一个专门的配置类进行管理项目内容
使用@Configuration将一个类定义为配置类,此类中专门用来各种配置
使用@ComponentScan 配置需要扫描文件的路径,将使用了@Component注解的类自动实例化
配置类中可以添加其他需要的配置注释,前两个是必用的注释
定义一个接口,进行实现类。使用注解@Autowired进行依赖注入。依赖注入如果是个接口,则会将实现类自动绑定到接口上进行使用。
当一个接口有多个实现类时们可以通过@Qualifier进行选择某个类
通过工厂模式进行创建对象(万能的)可以将抽象类进行容器注入,工厂模式需要实现类 FactoryBean<Calendar(日历)>
因为是实现类所有会自动重写 getObject() 和 getObjectType() 两种方法
getObject() 返回类型对象
getObjectType() 返回字节码
@PostConsruct 初始化注解 会在执行时进行初始化
@PreDestroy 销毁注解
懒加载只会在单例模式中有效,多例模式无效。多例模式默认就是懒加载
@Lazy在使用时才会创建对象。
当用户会需要一些特殊的拦截,并且这些链接创建的时间非常长时,可以时间懒加载。
高效创建代理对象,通过代理解决实际问题。
再将切面提交给spring容器进行管理
有四种方法进行确定代理的类
3.1使用bean方式 bean 指定单独的类,可以添加多个 xx,xx
3.2使用自定义注解的方式 @annotation 通过用户自定义注解进行判断
3.3使用包路径的方式 within 通过包路径进行筛选。
3.4使用方法名的方式 execution 通过 返回值类型 包名 类名 的方法 进行判断。
常用通知有五种:
前置通知:@Before 在执行前输出
后置通知:@AfterReturning 在执行后一个输出
最终通知:@After 最后输出
异常通知:@AfterThrowing 报错异常输出
环绕通知:@Around 最常用!!可控制!! 前后都可以输出
当有两个或者多个AOP时,可以使用@Order注解进行排序输出!!
spring默认是JDK代理,想要更改为CGLIB代理 需要在启动注释中添加对应代码
SpringBoot默认使用的是CGLIB代理。如果需要更改为JDK代理则需要修改配置文件即可
View 视图层 Model业务层 Control控制层
分层说明:都可以直接提交给容器进行管理
1.控制层 Controller 与前端页面进行交互的 @Controller
2.业务层 Service 编辑业务逻辑 @Service
3.持久层 Mapper 实现数据库的相关操作 @Repository
MVC > 三层代码结构
使用@Controller 注解交给容器管理
使用@ResponseBodt 将此类进行定义JSON转换
上俩个可以简化使用:@RestController注解 等于二合一的注解
使用@CrossOrigin 解决跨域的问题
使用注解@RequestMapping 默认为get 方法
方法类型有四种:
@GetMapping 限制为get方法
@DeleteMapping 限制为delete方法
@PostMapping 限制为post方法
@PutMapping 限制为put方法
Lombok 包 添加辣椒文件
关于Lomnok使用说明:
使用时需要添加jar包和安装插件 Linux服务器项目中 不需要添加
在编译器有效
定义封装的属性在前端进行输入
使用注解@Data 可以自动生成set get tostring 等方法
使用注解@AllArgsConstructor 添加全参构造
使用注解@NoArgsConstructor 添加无参构造
使用注解@Accessors(chain = true) 可以重写set方法 并且进行链式加载
以上为POJO文件标配注解 且必须进行实现类Serializable 序列化
3.在html中添加Axios文件。
并使用axios.get().then() 进行执行
SpringBoot为了简化程序的测试过程,springboot针对的测试方法开发了一个注解
@SPringbootTest注解
规则说明 :
当运行@Test注解表示的方式时,程序启动
Springboot启动,内部spring容器启动 基于IOC管理对象,DI注入对象
可以在任意的测试类中注入响应的对象
@Value 赋值
使用@PropertySource注解确认文件位置
定义properties文件 并将name属性赋值
- <?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>
-
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.1.1.RELEASE</version>
- <relativePath/>
- </parent>
-
- <groupId>com.lianlianpay</groupId>
- <artifactId>LLP-ACCP-Java</artifactId>
- <version>1.0-SNAPSHOT</version>
-
- <properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
- </properties>
-
- <dependencies>
-
-
- <!-- 支付宝支付依赖-->
-
- <!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java -->
- <dependency>
- <groupId>com.alipay.sdk</groupId>
- <artifactId>alipay-sdk-java</artifactId>
- <version>4.35.79.ALL</version>
- </dependency>
-
- <!--Swagger-->
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger2</artifactId>
- <version>2.7.0</version>
- </dependency>
- <!--Swagger ui-->
- <dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger-ui</artifactId>
- <version>2.7.0</version>
- </dependency>
-
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.11</version>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpcore</artifactId>
- <version>4.4.10</version>
- </dependency>
- <dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <version>4.5.3</version>
- </dependency>
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.29</version>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <version>1.18.4</version>
- <scope>provided</scope>
- </dependency>
- <!-- springboot -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <!--thymeleaf 模板依赖-->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-thymeleaf</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- <scope>runtime</scope>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-configuration-processor</artifactId>
- <optional>true</optional>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <excludes>
- <exclude>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </project>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。