网站首页 > 博客文章 正文
今天是刘小爱自学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层的代码。
最后
谢谢你的观看。
如果可以的话,麻烦帮忙点个赞,谢谢你。
猜你喜欢
- 2024-10-09 IDEA常用代码格式规范(idea中规范代码的快捷键)
- 2024-10-09 “全栈2019”Java异常第五章:一定会被执行的finally代码块
- 2024-10-09 IntelliJ IDEA Spring新功能解析(idea的spring)
- 2024-10-09 IntelliJ IDEA + Maven 的多模块Spring MVC + Spring + Mybatis项目骨架
- 2024-10-09 “全栈2019”113篇Java基础学习资料及总结
- 2024-10-09 IntelliJ IDEA 推荐设置讲解(新人重点)
- 2024-10-09 IDEA 的 debug 怎么实现?出于这个好奇心,我越挖越深
- 2024-10-09 限时白嫖!分享10个 解放双手的 IDEA 插件,码农:工作效率瞬间翻倍
- 2024-10-09 【推荐】IntelliJ IDEA 使用系列教程(23)-控制台乱码解决方案
- 2024-10-09 IDEA中给源码添加自己注释——private-notes插件安装使用
你 发表评论:
欢迎- 07-07Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- 07-07Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- 07-07Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- 07-07Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- 07-07IT运维必会的30个工具(it运维工具软件)
- 07-07开源项目有你需要的吗?(开源项目什么意思)
- 07-07自动化测试早就跑起来了,为什么测试管理还像在走路?
- 07-07Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- 最近发表
-
- Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- IT运维必会的30个工具(it运维工具软件)
- 开源项目有你需要的吗?(开源项目什么意思)
- 自动化测试早就跑起来了,为什么测试管理还像在走路?
- Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- Cursor 太贵?这套「Cline+OpenRouter+Deepseek+Trae」组合拳更香
- 为什么没人真的用好RAG,坑都在哪里? 谈谈RAG技术架构的演进方向
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)