目录
Spring框架
@Configuration :将当前类标识为配置类
@Test :测试类
@Component : 将当前的类,交给Spring容器管理, 对象的创建是由Spring通过反射机制自动创建对象--如果不指定则默认就是类名首字母小写
@Component(“xxxxx”) 给对象指定key的名称
@ComponentScan(“com.jt”) 包扫描的注解 使Spring注解有效
@Override :指重写后的属性或是方法
@Bean :将自己方法的返回值交给Spring容器管理
@Scope("singleton") 默认值 单例模式 @Scope("prototype") 多例模式
@Lazy :指的是懒加载
多例与懒加载的关系
Spring对象生命周期
1.@PostConstruct 在对象创建之后立即调用---初始化
2.创建对象
3.使用对象
4.@PreDestroy 对象消亡时 进行调用---销毁
依赖注入(Dependency Injection,简称DI)
@Autowired注解
@Autowired@Qualifier("cat") 该注解不能单独使用,必须配合@Autowired一起使用,根据key进行注入@Resource(name = "cat") 功能上说:@Autowired +@Qualifier("cat") 只需了解,不常用
SpringMVC
层级代码结构:MVC设计思想--(一种思想)
@Controller:控制层 Controller 与前端页面交互的.@Service:业务层 Service 编辑业务逻辑.@Repository:持久层 Mapper 实现数据库的相关操作 暂时:后期不用MVC > 三层代码结构!!! 指的是一个项目最基本的要有三层代码结构 视图前端 & java程序 & 数据库
@Value注解 :可以直接为基本类型赋值和String类型,然后打印输出可以显示出@value("值")中的值
@Repository --Spring中可以理解为@Component的派生品,可以被@ComponentScan扫描到
@PropertySource(value = "classpath:/user.properties",encoding = "utf-8")--固定写法,value="classpath",/user.properties表示配置文件,encoding="utf-8"中文放乱码
@ResponseBody //将返回值转化为JSON串 使用最多!!!
@RequestMapping--是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@Controller //将类交给SpringMVC管理
@ResponseBody //当前类中的所有方法 都返回JSON串
@RestController // = @Controller + @ResponseBody
@CrossOrigin --- 允许跨域 主要解决跨域问题
User转化为JSON串 @ResponseBody
JSON串转化为User @RequestBody
@RequestMapping可以支持任意类型的请求. 但是这样的写法不安全. 改进: 只能接收固定类型的请求 @PostMapping("/saveUser") @GetMapping @PutMapping @DeleteMapping
@SpringAOP
before通知 目标方法执行前执行
前置通知afterRrturning 通知 目标方法执行之后执行
后置通知afterThrowing 通知 目标方法报错时执行
异常通知after通知 目标方法执行之后 最后执行
最终通知around通知 目标方法执行前后都要执行
环绕通知
其中前四种通知只能作为日志的形式存在,环绕通知可以更改数据,功能更为强大
@Aspect //定义切面类
@Component //将切面交给Spring容器管理
@Order(1) //如果是多个切面, 可以实现排序 数字越小越靠前
@Order(2) //如果是多个切面, 可以实现排序 数字越小越靠前
Pointcut(切入点): JoinPoint的集合,是程序中需要注入Advice的位置的集合,指明Advice要在什么样的条件下才能被触发,在程序中主要体现为书写切入点表达式。
@Pointcut("bean(userServiceImpl)") //通过bean的ID匹配@Pointcut("within(com.jt.service.UserServiceImpl)") //通过类型匹配@Pointcut("execution(* com.jt.service..*.*(..))") //通过方法参数匹配@Pointcut("@annotation(com.jt.anno.MyAnnotation)") //注解匹配
@Springboot
springBoot将繁琐的配置封装到某些jar包中. 该jar包中的文件已经完成了配置.引入即可使用.只需要少量的配置就可以获取其功能的方式 叫做 “开箱即用”
加载lombok 插件
@Data 重写了getting setter tostring equals和hashcodu 方法
@Accessors(chain = true) 重写了 set方法, 可以实现链式加载
@NoArgsConstructor 无参构造方法
@AllArgsConstructor 全参构造方法
@SpringBootTest:SpringBoot为了简化程序测试过程,springBoot针对于测试方法,开发了一个注解 规则说明:1. 当运行@Test注解标识的方式时,SpringBoot程序启动2. SpringBoot启动,内部Spring容器启动.基于IOC管理对象,DI注入对象3. 可以在任意的测试类中注入想要的对象 注意事项: 测试类的包路径,必须在主启动类的同包及子包中编辑
Spring框架
@Configuration :将当前类标识为配置类
类似于以前的xxx.xml配置文件
@Test :测试类
在此注解下所写的是测试类,相当于main方法,可以检查代码是否正常运行
Scanner 只能在main方法里可以正常运行,@Test里无法运行
@Component : 将当前的类,交给Spring容器管理, 对象的创建是由Spring通过反射机制自动创建对象--如果不指定则默认就是类名首字母小写
@Component(“xxxxx”) 给对象指定key的名称
@ComponentScan(“com.jt”) 包扫描的注解 使Spring注解有效
@Override :指重写后的属性或是方法
@Bean :将自己方法的返回值交给Spring容器管理
@Scope("singleton") 默认值 单例模式 @Scope("prototype") 多例模式
@Lazy :指的是懒加载
多例与懒加载的关系
说明: 只要对象是多例模式,则都是懒加载! 在单例模式中控制懒加载才有效
规则说明:
lazy true lazy false
@Scope(“singleton”) //默认值 单例模式 懒加载 有效 立即加载
@Scope(“prototype”)//默认值 多例模式 懒加载 无效 懒加载
Spring对象生命周期
一个对象从创建到消亡,可以划分为四个阶段,如果需要对程序进行干预.则可以通过周期方法进行干预
1.@PostConstruct 在对象创建之后立即调用---初始化
2.创建对象
3.使用对象
4.@PreDestroy 对象消亡时 进行调用---销毁
依赖注入(Dependency Injection,简称DI)
@Autowired注解
说明: 在对象中如果需要使用属性注入.一般使用@Autowired注解.
功能: 可以将Spring容器中的对象,自动注入到属性中.
注入方式:
1. 默认按照类型注入. 如果注入的属性是接口,则自动注入实现类
2. 按照名称注入(key). 一般不用
重要前提: 如果需要依赖注入.则对象必须交给Spring容器管理