这节课首先我们学习下注解,使用注解在代码中对bean进行定义
首先来到官网https://docs.spring.io/spring/docs/5.0.3.RELEASE/spring-framework-reference/core.html#beans-annotation-config
https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-reference/core.html#beans-java
接下来演示下代码
首先创建一个MyConfig文件
目录如下
代码如下
根据官网可知 在MySpring中调用如下
运行结果
下面将setUserNameLength参数改为6
代码如下
运行结果
上面代码即为注解方式加载bean对象
下面我们学习一些其他知识点。
以后我们会了解到什么时候使用xml方式好还是注解方式好
假设有这样的需求 数据库中有许多字符串连接字符串包括用户名密码等等 我们把这些写在myuser.xml文件中也是可以的 这里面有大量的常量字符串 这种明显写在xml中更方便
接下来我们对自定义注解进行编码
首先在com.jtthink下面创建一个MyAnnos包(注解)
接下来在SpringBean下面创建一个测试文件MyTest.java文件
目录如下
代码如下
接下来创建一个注解
在MyAnnos中创建一个NameCheck注解文件
接下来在MyTest文件中打上注解
有了注解之后,我们的代码是否能通过注解产生一些变化呢?
在注解里面是不能写任何代码的 会报错
接下来在MySpring中写入测试代码
运行结果
可以看见输出了bhc 注解没有产生任何作用
所以接下来我们需要了解反射这个功能
反射:在程序运行的过程中,去加载某一个类或对象,也叫作动态加载
接下来我们写下代码
运行结果
以上代码为通过反射方式获取MyTest类中的方法
下面通过反射的方式获取注解
运行结果
结果为空 说明并没有获取到注解
是因为注解代码中需要写入一些修饰内容
接下来学习下注解的生命周期
接下来修改一下NameCheck中的注解
把MySpring中取出注解的地方做下修改
因为我们的注解打在了showName方法上 所以需要通过方法取出注解 不能通过类取出
运行结果
可以看见取出了注解内容
接着修改下MyTest中打入注解内容
运行结果
可以看见注解发生了变化
那么这样写注解有什么作用呢
得到注解后可以做一个判断
看如下代码
运行结果
所以在spring内容有庞大的程序对我们的注解进行控制,其也是使用反射的方式
下面我们接着修改一下MySpring代码
运行结果
我们将name值做下修改
运行结果
执行了上面的invoke方法 输出了showName值