spring项目中常见注解

1.  定义Bean的注解

@Controller

@Controller("Bean的名称")    定义控制层Bean,如Action

@Service

@Service("Bean的名称")    定义业务层Bean

@Repository

@Repository("Bean的名称")    定义DAO层Bean

@Component

定义Bean, 不好归类时使用.

无论是DAO,Controller,Service三个层,都可以用这个注解,@Component,这个注解通用所有的Bean。

这个时候你可能会说了,有通常的为什么用的人少呢,那是因为MVC这个分层的设计原则,用@Repository,@Service,@Controller,这个可以区别MVC原则中的DAO,Service,Controller。便于识别。

 

2.  自动装配Bean (选用一种注解就可以)

//  服务层
@Service(“User”)
public class UserServiceImpl implements UserService{};

// 控制层
@Controller
public class userContriller {

@AutoWired
private
UserService userService;


@Resource
private UserService userService;
................ 相关逻辑..............
}

@AutoWire  (spring 提供)

根据 类型 注入,AutoWired 会根据 UserService 去查找 UserService 这个类 型以及其子类型。UserServiceImpl 实现了 UserService,所以能够找到它。

不过这样有一个缺点,就是当 UserService 的实现类有两个以上的时候,这个时候不确定是哪个实现类而造成冲突,所以要用 @AutoWire 注入的时候要确保 UserService 只有一个实现类。

@Resource   (J2EE 提供)

@Resource(name ="***")  :  name后的名字去bean元素里查找有与之相等的name属性的bean。

@Resource(type ="***")   :  从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常。

@Resource   :  默认情况下是按照 名称 进行匹配,如果没有找到相同名称的Bean,则会按照类型进行匹配。

有人可能会想了,这下好了,用这个是万能的了,不用管名字了,也不用管类型了,但这里还是有缺点。首先,根据这个注解的匹配效果可以看出,它进行了两次匹配,也就是说,如果你在 UserService 这个类上面写@Service ,它会怎么找呢,首先是找相同名字的,如果没有找到,再找相同类型的,而这里的 @Service 没有写名字,这个时候就进行了两次搜索,显然,速度就下降了许多。

也许你还会问,这里的 @Service 本来就没有名字,肯定是直接进行类型搜索啊。其实不是这样的,UserServiceImpl 上面如果有 @Service 默认的名字 是这个 userServiceImpl,注意看,就是把类名前面的大写变成小写,就是默认的Bean的名字了。 @Resource 根据名字搜索是这样写 @Resource("userService"),如果你写了这个名字叫 userService,那么UserServiceImpl上面必须也是这个名字,不然还是会报错。

@Autowired @Qualifie("user") 

直接按照名字进行搜索,也就是说,对于 UserServiceImpl 上面 @Service 注解必须写名字,不写就会报错,而且名字必须是 @Autowired @Qualifie("user") 保持一致。如果 @Service 上面写了名字,而 @Autowired @Qualifie() ,一样会报错。

 

3. 定义Bean的作用域和生命过程

@Scope("prototype")

值有 : singleton,prototype,session,request,session,globalSessio

@PostConstruct

相当于 init-method ,使用在方法上,当Bean初始化时执行。

@PreDestroy

相当于 destory-method ,使用在方法上,当Bean销毁时执行。

转载于:https://www.cnblogs.com/zz-1q/p/10397631.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot项目Spring容器的配置文件位置可以有多个,取决于您的项目结构和个人偏好。以下是Spring Boot项目Spring容器的配置文件位置的几个常见选项: 1. application.properties或application.yml 这是Spring Boot项目常见的配置文件位置之一。可以在src/main/resources目录下创建一个名为application.properties或application.yml的文件,并在其定义应用程序的配置信息和Spring Bean。 2. application-{profile}.properties或application-{profile}.yml 如果您在application.properties或application.yml定义了多个配置文件,则可以使用Spring Boot的多个配置文件选项来将它们分开。例如,可以创建一个名为application-dev.properties或application-prod.yml的文件,分别为开发和生产环境定义不同的配置。 3. @Configuration注解 在某些情况下,可能需要通过编写@Configuration注解来手动配置Spring Bean。在这种情况下,可以将@Configuration类放在任何位置,并使用@ComponentScan或@SpringBootConfiguration注解来将其纳入Spring容器管理。 4. @Import注解 如果您的应用程序有多个@Configuration类,可以使用@Import注解将它们组合在一起。在这种情况下,可以在任何@Configuration类使用@Import注解来导入其他@Configuration类,从而将它们加载到Spring容器。 以上是Spring Boot项目Spring容器的配置文件位置的几个常见选项,您可以根据自己的需求来选择适合自己的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值