【框架】122:spring框架之注解
今天是刘小爱自学Java的第122天。
感谢你的观看,谢谢你。
学习内容安排如下:
-
Spring注解的使用。 -
JavaWeb项目的搭建。 -
Spring的Web集成。
本来还计划学Spring的junit测试集成的,结果又没时间了。
一、Spring的注解
IoC容器是Spring的特色之一,可以使用它管理很多Bean,前几天我们都是将这些Bean配置在applicationContext.xml文件中的。
而注解的作用在于:用了注解之后,就不需要在xml文件中配置这些了 。
1开启注解
①开启spring的注解
context:annotation-config
让注解有效了,能够识别注解。
②配置注解扫描
context:component-scan
用来专门扫描含有@Component注解的类,自动将其作为bean。
base-package
要扫描包的路径,包含子包,com.liuxiaoai表示该包下的所有子包和类定义注解都有效.
注意:注解扫描配置的时候,会自动开启注解功能,也就是说有了②的话,①就不需要了。
如果是注解+XML组合使用,可以只开启①。
2注解的使用
①@Component注解
相当于将对象存放到spring容器中。
其中@Component有三个子注解:
-
@Controller用于标注控制层组件,web层。 -
@Service用于标注业务层,service层。 -
@Repository用于标注数据访问组件,dao层。
而@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
②@Autowired注解
将ProductDao注入到了ProductService
单独使用@Autowired ,表示按照类型注入,会到spring容器中查找ProductDao的类型,对应<bean class=””>中class的属性值。
如果同类型有多个,可以使用@Autowired + @Qualifier表示按照名称注入。
会到spring容器中查找productDao名称,对应<bean id=””>中id的属性值,比如:@Qualifier("productDao")
除此之外还有一种注解方法:
使用@Value("#{productDao}"),也就是Value注解加上spEL表达式,也可以。
3注解测试
通过测试我们能发现,调用service层代码,dao层代码也能被调用。
注意:上述代码中可没有实例化dao层对象。
其实无论是spring注解也好,还是配置xml也罢,都是省略new对象这个步骤。
将dao层和service层对象关联起来了,没有new对象实例化,也能调用dao层代码。
当然spring肯定不止这么简单,只不过目前来说还没有学到其它的知识点。
二、JavaWeb项目搭建
1配置一个JavaWeb项目
这个在以前我们就配置过好多遍了:
①设置打包方式
在pom文件中,使用packaging标签添加web工程的打包方式为war。
②编辑项目结构
快捷键Ctrl+Shift+Alt+S即可打开。
找到当前模块下的web文件,如果没有右击模块添加web,添加web目录,目录结构必须为:项目名\src\main\webapp
③添加web.xml文件
web.xml文件是在webapp下的WEB-INF路径下面。
④最终项目结构图
webapp、resources以及Java是在同一个层级目录的,都是在main路径下面。
其中关于依赖的引入,需要什么就从父工程中引入即可,在此就不详细说明了。
2配置Tomcat插件
以前是直接在idea中配置Tomcat,现在因为是maven工程,也可以使用Tomcat插件。
①配置Tomcat插件
同样地,通过父工程中的pom文件引入即可。
其中通过configuration标签,我们可以配置Tomcat的端口和路径。
②运行Tomcat
点击Tomcat7:run即可运行Tomcat。
为了更便捷地运行Tomcat,可以将其配置到idea菜单栏中:
三、Spring的Web集成
一样还是Java三层代码的编写。
1编写代码
①开启spring注解功能
这不用多说,刚学习了的。
②service层代码编写
将HelloService对象提交到spring容器中管理,同时注入HelloDao。
在方法中编写一条输出语句作为测试,并调用dao层的方法。
③dao层代码编写
将HelloDao对象提交到spring容器中管理,同时在方法中写一条输出语句作为测试。
④web层代码编写
通过注解开发创建一个HelloServlet。
以前我们都是直接new一个service层对应的对象,现在使用spring框架了,通过spring工厂获取即可。
2项目测试
启动Tomcat,并在浏览器上输入对应的路径(HelloServlet上的注解即为对应访问路径),访问服务器。
如果在idea控制台上会输出语句,证明该路径成功访问到了服务器,并且执行到了service层和dao层的代码。
最后
时间受限,还有一个Spring监听器也没时间弄了,这块应该还算简单,马上要学的AOP面向切面编程才是重点,并且据说很难。
谢谢你的观看。
如果可以的话,麻烦帮忙点个赞,谢谢你。
本文分享自微信公众号 - 刘小爱(liuxiaoai946)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
PHP 命名空间与类自动加载实现
1、从文件引入谈起 在 PHP 5.3 之前,要在一个 PHP 脚本中引入另一个 PHP 脚本中定义的代码(通常是函数或者类),需要借助 include、require、include_once、require_once 等语句,include 和 require 都可以通过指定路径引入一个 PHP 脚本,区别是 include 没有找到对应路径脚本时发出警告(E_WARNING),而 require 会抛出致命错误(E_COMPILE_ERROR),include_once/require_once 也是用于引入指定路径 PHP 脚本,与 include/require 的区别是如果指定路径已经包含过,不会再次包含,换言之,只会包含一次同一路径脚本,include_once 和 require_once 的区别与 include/require 一样。 所以从性能角度说,使用 include_once/require_once 性能更好一些,至于使用 include_once 还是 require_once,取决于你对指定路径 PHP 脚本不存在的预期处理。 在前面的作业中,我们已经...
- 下一篇
【小白学ML】随机森林 全解 (从bagging到variance)
【前言】:公众号的AI初学者交流群已经建立啦,公众号后台回复【加群】可以加入。群里都是些一起学习的朋友,大家学习路上,结个伴。 【公众号资源汇总】:炼丹图书馆 | AI初学者所需要的资料合集(视频+PDF下载) 全文3155字,预计阅读时间10min 文章目录: 1 随机森林 2 bagging 3 神秘的63.2% 4 随机森林 vs bagging 5 投票策略 6 随机森林的特点 6.1 优点 6.2 bias 与 variance 6.3 随机森林降低偏差证明 为什么现在还要学习随机森林? 随机森林中仍有两个未解之谜(对我来说)。随机森林采用的bagging思想中怎么得到的62.3% 以及 随机森林和bagging的方法是否有区别。 随机森林(Random Forest)就是通过集成学习的思想将多棵决策树集成的一种算法。基本单元是决策树。随机森林算法的提出也是为了改善决策树容易存在过拟合的情况。 1 随机森林 习惯上,我们将众多分类器(SVM、Logistic回归、决策树等)所组成的“总的分类器”,叫做随机森林。随机森林有两个关键词,一个是“随机”,一个是“森林”。森林就是成百...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度