Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yerui2008198
toBeTopJavaer
提交
79ae02a7
T
toBeTopJavaer
项目概览
yerui2008198
/
toBeTopJavaer
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
toBeTopJavaer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
79ae02a7
编写于
8月 11, 2019
作者:
H
hollis.zhl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加注解与泛型相关知识点
上级
f2eae060
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
113 addition
and
4 deletion
+113
-4
README.md
README.md
+6
-4
basics/java-basic/annotation-in-spring.md
basics/java-basic/annotation-in-spring.md
+42
-0
basics/java-basic/create-annotation.md
basics/java-basic/create-annotation.md
+42
-0
basics/java-basic/custom-annotation.md
basics/java-basic/custom-annotation.md
+3
-0
basics/java-basic/genericity-list-wildcard.md
basics/java-basic/genericity-list-wildcard.md
+1
-0
basics/java-basic/genericity-list.md
basics/java-basic/genericity-list.md
+5
-0
basics/java-basic/meta-annotation.md
basics/java-basic/meta-annotation.md
+14
-0
未找到文件。
README.md
浏览文件 @
79ae02a7
...
@@ -175,9 +175,11 @@ apache集合处理工具类的使用、
...
@@ -175,9 +175,11 @@ apache集合处理工具类的使用、
#### 注解
#### 注解
元注解、自定义注解
、Java中常用注解使用、注解与反射的结合
[
元注解
](
/basics/java-basic/meta-annotation.md
)
、
[
自定义注解
](
/basics/java-basic/custom-annotation.md
)
、Java中常用注解使用、注解与反射的结合
Spring常用注解
[
如何自定义一个注解?
](
/basics/java-basic/create-annotation.md
)
[
Spring常用注解
](
/basics/java-basic/annotation-in-spring.md
)
#### JMS
#### JMS
...
@@ -193,9 +195,9 @@ Spring常用注解
...
@@ -193,9 +195,9 @@ Spring常用注解
限定通配符和非限定通配符、上下界限定符extends 和 super
限定通配符和非限定通配符、上下界限定符extends 和 super
List
<Object>
和原始类型List之间的区别?
[
List<Object>和原始类型List之间的区别?
](
/basics/java-basic/genericity-list.md
)
List
<
?
>
和List
<Object>
之间的区别是什么?
[
List<?>和List<Object>之间的区别是什么?
](
/basics/java-basic/genericity-list-wildcard.md
)
#### 单元测试
#### 单元测试
...
...
basics/java-basic/annotation-in-spring.md
0 → 100644
浏览文件 @
79ae02a7
@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
@Scope注解 作用域
@Lazy(true) 表示延迟初始化
@Service用于标注业务层组件、
@Controller用于标注控制层组件@Repository用于标注数据访问组件,即DAO组件。
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Scope用于指定scope作用域的(用在类上)
@PostConstruct用于指定初始化方法(用在方法上)
@PreDestory用于指定销毁方法(用在方法上)
@DependsOn:定义Bean初始化及销毁时的顺序
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用
@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
@PostConstruct 初始化注解
@PreDestroy 摧毁注解 默认 单例 启动就加载
### Spring中的这几个注解有什么区别:@Component 、@Repository、@Service、@Controller
1.
@Component指的是组件,
@Controller,@Repository和@Service 注解都被@Component修饰,用于代码中区分表现层,持久层和业务层的组件,代码中组件不好归类时可以使用@Component来标注
2.
当前版本只有区分的作用,未来版本可能会添加更丰富的功能
basics/java-basic/create-annotation.md
0 → 100644
浏览文件 @
79ae02a7
在Java中,类使用class定义,接口使用interface定义,注解和接口的定义差不多,增加了一个@符号,即@interface,代码如下:
public @interface EnableAuth {
}
注解中可以定义成员变量,用于信息的描述,跟接口中方法的定义类似,代码如下:
public @interface EnableAuth {
String name();
}
还可以添加默认值:
public @interface EnableAuth {
String name() default "猿天地";
}
上面的介绍只是完成了自定义注解的第一步,开发中日常使用注解大部分是用在类上,方法上,字段上,示列代码如下:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface EnableAuth {
}
Target
用于指定被修饰的注解修饰哪些程序单元,也就是上面说的类,方法,字段
Retention
用于指定被修饰的注解被保留多长时间,分别SOURCE(注解仅存在于源码中,在class字节码文件中不包含),CLASS(默认的保留策略,注解会在class字节码文件中存在,但运行时无法获取),RUNTIME(注解会在class字节码文件中存在,在运行时可以通过反射获取到)三种类型,如果想要在程序运行过程中通过反射来获取注解的信息需要将Retention设置为RUNTIME
Documented
用于指定被修饰的注解类将被javadoc工具提取成文档
Inherited
用于指定被修饰的注解类将具有继承性
\ No newline at end of file
basics/java-basic/custom-annotation.md
0 → 100644
浏览文件 @
79ae02a7
除了元注解,都是自定义注解。通过元注解定义出来的注解。
如我们常用的Override 、Autowire等。
日常开发中也可以自定义一个注解,这些都是自定义注解。
\ No newline at end of file
basics/java-basic/genericity-list-wildcard.md
0 → 100644
浏览文件 @
79ae02a7
List
<
?
>
是一个未知类型的List,而List
<Object>
其实是任意类型的List。你可以把List
<String>
, List
<Integer>
赋值给List
<
?
>
,却不能把List
<String>
赋值给 List
<Object>
。
basics/java-basic/genericity-list.md
0 → 100644
浏览文件 @
79ae02a7
原始类型List和带参数类型
<Object>
之间的主要区别是,在编译时编译器不会对原始类型进行类型安全检查,却会对带参数的类型进行检查。
通过使用Object作为类型,可以告知编译器该方法可以接受任何类型的对象,比如String或Integer。
它们之间的第二点区别是,你可以把任何带参数的类型传递给原始类型List,但却不能把List
<String>
传递给接受 List
<Object>
的方法,因为会产生编译错误。
\ No newline at end of file
basics/java-basic/meta-annotation.md
0 → 100644
浏览文件 @
79ae02a7
说简单点,就是 定义其他注解的注解 。
比如Override这个注解,就不是一个元注解。而是通过元注解定义出来的。
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)
public @interface Override {
}
这里面的
@Target
@Retention
就是元注解。
元注解有四个:@Target(表示该注解可以用于什么地方)、@Retention(表示再什么级别保存该注解信息)、@Documented(将此注解包含再javadoc中)、@Inherited(允许子类继承父类中的注解)。
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录