【Java EE 学习 49 下】【Spring学习第一天】【MVC】【注解回顾】
一、MVC
1.使用Spring有一个非常大的好处,那就是能够实现完全面向接口编程,传统的使用Dao、Service并不能实现完全的面向接口编程。
2.示例:https://github.com/kdyzm/day45_spring_mvc
二、注解示例
1.定义注解方法示例:
package com.kdyzm.spring.annotation; import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target; @Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})
public @interface MyAnnotation {
String value() default "默认值";
}
2.使用注解方法示例
package com.kdyzm.spring.annotation; @MyAnnotation
public class Person {
@MyAnnotation("name属性")
public String name; @Override
@MyAnnotation("toString方法!!!")
public String toString() {
return "Person [name=" + name + "]";
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }
3.解析注解方法示例
package com.kdyzm.spring.annotation; import java.lang.reflect.Field;
import java.lang.reflect.Method; public class Test {
public static void main(String[] args) {
Class<Person> clazz=Person.class;
if(clazz.isAnnotationPresent(MyAnnotation.class)){
MyAnnotation annotation=(MyAnnotation) clazz.getAnnotation(MyAnnotation.class);
System.out.println(annotation.value());
}
Field [] fields=clazz.getFields();
for(Field field:fields){
System.out.println(field.getName());
if(field.isAnnotationPresent(MyAnnotation.class)){
MyAnnotation annotation=field.getAnnotation(MyAnnotation.class);
System.out.println(annotation.value());
}
} Method[]methods=clazz.getMethods();
for(Method method:methods){
System.out.println(method.getName());
if(method.isAnnotationPresent(MyAnnotation.class)){
MyAnnotation annotation = method.getAnnotation(MyAnnotation.class);
System.out.println(annotation.value());
}
}
}
}
4.解析结果:
默认值
name
name属性
toString
toString方法!!!
getName
setName
wait
wait
wait
equals
hashCode
getClass
notify
notifyAll
【Java EE 学习 49 下】【Spring学习第一天】【MVC】【注解回顾】的更多相关文章
- MongoDB和Java(5):Spring Data整合MongoDB(注解配置)
最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装.客户端操作.安全认证.副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很 ...
- Java架构师之路 Spring学习笔记(一) Spring介绍
前言 这是一篇原创的Spring学习笔记.主要记录我学习Spring4.0的过程.本人有四年的Java Web开发经验,最近在面试中遇到面试官总会问一些简单但我不会的Java问题,让我觉得有必要重新审 ...
- 【Java面试】介绍下Spring IoC的工作流程
Hi,我是Mic 一个工作了4年的粉丝,在面试的时候遇到一个这样的问题. "介绍一下Spring IOC的工作流程" 他说回答得不是很好,希望我能帮他梳理一下. 关于这个问题,我们 ...
- Spring学习总结(19)——Spring概念详解
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建.简单来说,Spring是一个分层的JavaSE/EEfull-stack(一 ...
- 201521123006 《Java程序设计》第1周学习总结
1. 本章学习总结 (1)java在使用的过程中可以发现其本身有着许多为了节约资源而作的设计,而java根据其应用领域分为了三大平台:Java SE.Java ME与Java EE.在本周的学习中我们 ...
- Java ee第一周的作业
这学期目标:对Java ee 进行一定程度的学习,希望最后自己能尽可能掌握Java ee的知识 企业及应用的特点:企业级的应用通常比较庞大,而且其中的数据需要保密. Java ee 框架图
- 【转载】开发者眼中的Spring与Java EE
转载自:http://www.infoq.com/cn/news/2015/07/spring-javaee 在Java社区中,Spring与Java EE之争是个永恒的话题.在这场争论中,来自两个阵 ...
- 最重要的 Java EE 最佳实践
參考:IBM WebSphere 开发人员技术期刊: 最重要的 Java EE 最佳实践 IBM WebSphere 开发人员技术期刊: 最重要的 Java EE 最佳实践 2004 年 IBM® W ...
- Java EE发展史
前言 最近的这段时间一直在学习Java EE,刚刚完成了从0到1的蜕变,所以顺便整理一下我所了解到的Java EE,给刚入门学习的新人一些头绪,而所谓“启示录”,就是这个意思. 一.Java EE是什 ...
随机推荐
- Pyhont-Urllib
urllib 方法 1 httpContent=urllib.urlopen(url) 2 fileName, httpContent= urllib.urlretrieve(url, filePat ...
- AOPR破解的密码复制的方法
Advanced Office Password Recovery是一款office密码破解工具,简称AOPR.使用过Advanced Office Password Recovery的用户都知道成功 ...
- 架构师养成记--4.volatile关键字
volatile修饰的变量可在多个线程间可见. 如下代码,在子线程运行期间主线程修改属性值并不对子线程产生影响,原因是子线程有自己独立的内存空间,其中有主内存中的变量副本. public class ...
- phpexcel导入数据部分数据有误
数据在excel中是这样的: 插入数据库后是这样的: 很难发现,出错的那几条数据中的单元格中都有英文','符号,而phpexcel又是以','来拼接读取到的数据的. 解决办法:修改代码中的','为不常 ...
- Beta阶段第三次Scrum Meeting
情况简述 Beta阶段第三次Scrum Meeting 敏捷开发起始时间 2016/12/12 22:00 敏捷开发终止时间 2016/12/13 22:00 会议基本内容摘要 讨论决定了APP的名称 ...
- String类的功能
String类 标红的为较少出现的 1.判断功能 boolean equals(Object obj) :比较字符串内容是否相同,区分大小写 boolean equalsIg ...
- ES5语法
ES5新语法主要是体现在Object和.Array操作,同时涉及到JSON. Function.Date 和 String类型上. 1.Object ES5最大的特点是对象扩展很多方法. 新建对象:c ...
- win10如何100%提升网络速度
1.Win+R运行,输入gpedit.msc 2.依次打开"计算机配置"-"管理模板"-"网络"-"QoS数据包计划程序" ...
- 三列等高 css实现
实现这个三列等高 布局需要最外层的一个div wrap容器 里面有三个div容器 这个最外层div 需要移除隐藏 overflow:hidden; 关键点就是三列div 同时margin-botto ...
- AngularJS常用插件与指令收集
angularjs 组件列表 bindonce UI-Router Angular Tree angular-ngSanitize模块-$sanitize服务详解 使用 AngularJS 开发一个大 ...