爪哇 2博客
 爪哇 2博客

弹簧 @ Component,@ 服务 ,@ 资料库和@Controller批注

我们已经看过 @Autowired注解 但是我们已经使用xml配置来配置bean并将其注入到容器中,但是如果您使用@ Component,@ 服务 ,@ 资料库和@Controller批注并启用组件自动扫描,spring会自动将这些bean导入容器中,而您不会’不必在xml文件中显式定义它们。
所以基本上所有4个注释都用于在spring中注册bean定义’的应用程序上下文。

@零件:

@Component是 通用注释 用于bean定义并向应用程序上下文注册。

@服务:

@服务是 专业组件注释 用于注释属于服务层的类。

@存储库:

@存储库注释为 专业组件注释 用于在DAO层注释类。它还使未经检查的异常有资格转换为Spring DataAccessException。

@Controller:

@控制器注释为 专业组件注释 用于在Presentation层上注释类。它在Spring MVC应用程序中广泛使用。

除非您确定它不属于@ 服务 ,@ 资料库和@Controller注释,否则不应使用@Component注释。

启用组件扫描:

所有这些注释仅在您使用时有效 上下文:组件扫描 在applicationcontext.xml中。它基本上扫描4个以上带注释的类,并在Spring应用程序上下文中注册bean。

1
2
3
 
< 语境 :零件- 扫描 基础 -=“ 组织 .arpit.java2blog” />
 

弹簧 注释示例:

在此示例中,我们将使用上述注释在controller,service和Dao类的帮助下创建country对象。
首先创建我们的bean类
国家 .java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
组织 . Arpit . 爪哇 2blog.;
 
上市 国家 {
 
国家的名字;
人口;
 
上市 国家 () {
  ();
}
上市 国家 ( 国家的名字, 人口) {
  ();
   这个 .国家的名字 = 国家的名字;
   这个 .人口=人口;
}
 
上市 getCountryName() {
   返回 国家的名字;
}
上市 虚空 setCountryName( 国家的名字) {
   这个 .国家的名字 = 国家的名字;
}
上市 getPopulation() {
   返回 人口;
}
上市 虚空 setPopulation( 人口) {
   这个 .人口 = 人口;
}
 
}
 

国家 Controller,java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
组织 . Arpit . 爪哇 2blog.控制者;
 
进口 组织 . Arpit . 爪哇 2blog.. 国家 ;
进口 组织 . Arpit . 爪哇 2blog. 服务 .国家服务;
进口 组织 .弹簧框架. 豆子 ..注解.自动接线;
进口 组织 .弹簧框架.刻板印象.控制者;
 
@控制者 (“ 国家 Controller”)
上市 国家 Controller
{
     @自动接线
    国家服务 国家 服务 ;
 
     上市 国家 createNewCountry()
    {
         返回 国家 服务 .createNewCountry();
    }
}
 

国家服务.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
组织 . Arpit . 爪哇 2blog. 服务 ;
 
进口 组织 . Arpit . 爪哇 2blog.. 国家 ;
进口 组织 . Arpit . 爪哇 2blog..国家;
进口 组织 .弹簧框架. 豆子 ..注解.自动接线;
进口 组织 .弹簧框架.刻板印象. 服务 ;
 
@ 服务 (“ 国家 服务 ”)
上市 国家服务 {
    @自动接线
国家 国家;
上市 国家 createNewCountry() {
 
   返回 国家.createNewCountry();
}
 
}
 

国家.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
组织 . Arpit . 爪哇 2blog.;
 
进口 组织 . Arpit . 爪哇 2blog.. 国家 ;
进口 组织 .弹簧框架.刻板印象.资料库;
 
@资料库(“ 国家”)
上市 国家 {
 
上市 国家 createNewCountry() {
  //您应该从数据库中获取它
   国家 国家 = 国家 ( “印度” , 40000);
   返回 国家 ;
}
 
}
 

applicationcontext.xml
1
2
3
4
5
6
7
8
9
 
< 豆子 XML文件 ns ="http://www.springframework.org/schema/beans"
XML文件 ns : 语境 ="http://www.springframework.org/schema/context"
XML文件 ns : 多媒体 ="http://www.springframework.org/schema/mvc" XML文件 ns : si ="http://www.w3.org/2001/XMLSchema-instance"
si :schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
< 语境 :零件- 扫描 基础 -=“ 组织 .arpit.java2blog” />
</ 豆子 >
 

弹簧 ApplicationMain.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
组织 . Arpit . 爪哇 2blog. 主要 ;
 
进口 组织 . Arpit . 爪哇 2blog.. 国家 ;
进口 组织 . Arpit . 爪哇 2blog.控制者. 国家 Controller;
进口 组织 .弹簧框架. 语境 .ApplicationContext;
进口 组织 .弹簧框架. 语境 . 支持 .ClassPathXmlApplicationContext;
 
上市 弹簧 ApplicationMain {
上市 静态的 虚空 主要 ([] args ) {
 
  ApplicationContext 语境 = ClassPathXmlApplicationContext(“ applicationContext.xml”);
   国家 Controller 控制者 = ( 国家 Controller) 语境 . getBean (“ 国家 Controller”);
   国家 国家 = 控制者.createNewCountry();
   系统 .. 打印 (“国家的名字 : ” + 国家 .getCountryName());
   系统 .. 打印 (“国家人口:” + 国家 .getPopulation());
}
}
 

当您运行上述程序时,将获得以下输出:
1
2
3
4
5
6
7
8
 
八月 08, 2016 12:00:42 上午 组织 .弹簧框架. 语境 . 支持 .ClassPathXmlApplicationContext 准备刷新
信息 : 提神醒脑 组织 .弹簧框架. 语境 . 支持 .ClassPathXmlApplicationContext@1c2709da: 启动 日期 [ 周一 八月 08 00:00:42 IST 2016]; 语境 等级制
八月 08, 2016 12:00:42 上午 组织 .弹簧框架. 豆子 .. XML文件 .XmlBeanDefinitionReader loadBeanDefinitions
信息 : 载入中 XML格式 格式 定义 路径 资源 [applicationContext. XML文件 ]
国家 名称 : Ï 恩迪亚
国家 's 人口 : 40000
 

导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 7月10日

    春季MVC教程

    在这篇文章中,我们将学习Spring MVC教程。 春季MVC框架是一个健壮的模型视图控制器框架,可帮助我们开发松耦合的Web应用程序。它借助MVC架构分离Web应用程序的不同方面。模型:模型携带应用程序数据。它通常以[…]

  • 9月13日

    春季MVC + 弹簧 数据 + 冬眠 + 的MySQL 示例

    在这篇文章中,我们将看到Spring MVC,Spring Data,hibernate和mysql CRUD示例的集成。在上一教程中我们已经看到了Spring MVC,hibernate和mysql示例。 春季数据 JPA提供了CRUD API,因此您不必’不必编写样板代码。您只需要创建存储库接口,spring就会提供[…]

  • 8月26日

    使用@ControllerAdvice示例的Spring MVC异常处理

    在这篇文章中,我们将看到如何使用@ControllerAdvice在Spring MVC中进行异常处理。在上一篇文章中,我们已经看到了如何使用@ExceptionHandler来处理异常,但是@ExceptionHandler只能应用于一个控制器,但是如果要全局(即跨多个控制器)处理异常怎么办?您可以使用@ControllerAdvice处理[…]

  • 8月26日

    使用@ExceptionHandler示例的Spring MVC异常处理

    在这篇文章中,我们将看到如何使用@ExceptionalHandler在Spring MVC中进行异常处理。发生异常时,可以使用@ExceptionHandler重定向到错误视图。让我们借助示例来理解这一点:源代码:下载单击以开始20KB .zip 1)在Eclipse中使用maven创建一个动态Web项目“SpringMVCExceptionalHandlerExample”Maven依赖项2)…]

  • 8月25日

    春季MVC休眠MySQL CRUD示例

    在这篇文章中,我们将看到Spring MVC,hibernate和mysql CRUD示例的集成。在上一教程中,我们已经看到了Spring Rest与hibernate的集成。 春季MVC教程Spring MVC你好世界示例Spring MVC休眠MySQL示例Spring MVC 春季数据示例Spring MVC Interceptor示例Spring MVC angularjs […]

  • 8月23日

    春季MVC + log4j示例

    在本文中,我们将看到如何将Spring MVC与log4j集成。 春季MVC教程:Spring MVC hello世界示例Spring MVC休眠MySQL示例Spring MVC拦截器示例Spring MVC angularjs示例Spring MVC @RequestMapping示例Spring组件,服务,存储库和控制器示例Spring MVC @ModelAttribute注释示例Spring MVC @RestController注释示例Spring […]

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


成为朋友

©2020 爪哇 2博客