Autowired与 Resource的区别
1、Autowired与Resource都是要装配bean
Autowired是通过byType来注入 Resource是同通过byName来注入
一、Autowired
Autowired默认是按类型(type也就是参数化类型)装配(这个注解是属于spring的),默认情况下Autowired要求依赖对象必须存在,如果想要允许他空值也就是null 可以设置它的required属性为false 格式为:@Autowired(required=false),如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
@Autowired` `()` `@Qualifier` `(` `"baseDao"` `)``private` `BaseDao baseDao;
二、Resource
@Resource(这个注解属于J2EE的),默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。用这个注解是因为不用写set方法,减少与spring的耦合
三、Value
@Value(“${}”):value的格式
value注解的作用是将我们配置文件的属性读出来
四、Builder
builder它的作用就是在你使用的地方生成一个构造器与this方法
this就是区分全局与形参 然后this就是选择比较远的那个也就是全局
五、有参构造与无参构造
-
构造方法的使用是用类名 构造函数也是与类名相同
-
也就是说构造就是跟类名相同的方法或者函数
-
还有就是如果类中没有构造函数那么你的类自带一个无参构造
-
构造函数不能有返回值g
-
有参构造就是有参数也就是有值的构造方法或者构造函数
-
无参构造就是没有参数也就是没有值的构造方法或者构造函数
六、启动类注解
@SpringBootApplication
启动类为什么叫这个名字就是因为 springboot框架后面加的是你的默认的配置类 application也就是程序的入口
启动类的8个注解就是为了扫描你的所有包就是所有的Bean就是容器 因为类默认有Bean
七、自动装配原理
byType(类型)通过类型来扫描bean
byName(名称) 通过名称来扫描bean
constructor(构造器)通过构造来扫描bean 包括构造函数与构造方法
基于注解的自动装配有三种
@Autowired @Resource @Value
springboot启动时,是依靠启动类的main方法来进行启动的,而main方法中执行的是SpringApplication.run()方法,而SpringApplication.run()方法中会创建spring的容器,并且刷新容器。而在刷新容器的时候就会去解析启动类,然后就会去解析启动类上的@SpringBootApplication注解,而这个注解是个复合注解,这个注解中有一个@EnableAutoConfiguration注解,这个注解就是开启自动配置,这个注解中又有@Import注解引入了一个AutoConfigurationImportSelector这个类,这个类会进过一些核心方法,然后去扫描我们所有jar包下的META-INF下的spring.factories文件,而从这个配置文件中取找key为EnableAutoConfiguration类的全路径的值下面的所有配置都加载,这些配置里面都是有条件注解的,然后这些条件注解会根据你当前的项目依赖的pom以及是否配置了符合这些条件注解的配置来进行装载的。
八 RequestMapping
1.1标注在方法上
1.用在方法上 表示在类的父路径下追加方法上注解中的地址将会访问到该方法
1.2 标注在类和方法上
用于类上 表示类中的所有请求的方法都是以该地址作为父路径
2 属性
2.1@RequestMapping的value必须设值, 是通过当前请求地址来匹配请求
2.2 value属性是一个字符串类型的数组,因此说明可以将多个请求映射到一个方法上 只需要给value来指定一个包含多个路径的数组
2.3method属性 是通过当前请求的请求方式来匹配请求
浏览器向服务器发送请求 请求方式有很多GET ,HEAD,POST,PUT,PATCH,DELETE,OPTIONS,TRACE
可以使用method属性来约束请求方式。
九 RestController和controller
1返回值不同
@RestController=@Controller+@ResponseBody
@ResponseBody是一个针对方法返回值进行处理的注解, 处理后的@RestController注解会将所有处理请求的方法默认解析为将方法返回值直接作为响应体内容返回 返回的数据通常是JSON或XML格式。
2用法不同
@RestController 注解主要有get、post、put、delete等 可以方便地处理输出和输入的JSON或XML数据,适用于前后端分离的架构。
@Controller则更多地与视图渲染和页面跳转相关,通过页面模板引擎将数据渲染成 HTML 页面返回给用户
十@Override
@Override是什么
他是一个伪代码 用于表示被标注的地方就是重写方法 只能用于标记方法 而且只在于编译期生效 不会保留在class文件中
还会检查该方法是否是重写方法。如果发现他的父类或者是引用的接口中没有该方法 会报编译错误
如果没有覆写(现在出现了继承的关系,那么就存在了子类和父类的联系,而在子类之中有可能定义和父类完全相同的方法或属性的名称,这个时候就称为覆写了。)或者实现超类(已经存在的类称为超类(superclass))的方法声明 ,或者不是覆写Object的public方法,那么编译就会报错。
为什么要用它
使用@Override注解主要有两个好处:
1)帮助自己检查是否正确的重写父类方法
2)明显的提示看代码的人,这是重写的方法
十一 什么是IOC容器
1.Ioc的一种实现方式,通过构造方法、setter方法或接口注入依赖对象。 2.使用Ioc就是把容器里的东西交给spring管理
十二Aop
Aop是一种java编程规范 是为了解耦合与代码重用
是面向切面编程
十三Tomcat
1.Tomcat就是java Servlet容器与web服务器Tomcat被广泛用于部署和运行Java Web应用程序。
2.Servlet是Java编写的服务器端程序,用于处理客户端请求并生成动态内容。
十四HTTP协议
HTTP(Hypertext Transfer Protocol)协议是一种用于在互联网上进行数据传输的协议
Http协议使用基于请求-响应模型的方式,客户端发送HTTP请求给服务器,服务器根据请求进行处理并返回相应的HTTP响应。
标签:请求,Autowired,spring,boot,注解,属性,方法,构造函数 From: https://blog.csdn.net/2402_82425464/article/details/139201007