java中的注解,不断更新

**

@Service

**
java编译器扫描指定路径下的包,如果一个类带了@Service注解,将这个类作为javabean自动注册到Spring容器,不需要再在applicationContext.xml配置文件中定义bean了,类似的还包括@Component、@Repository、@Controller
所以@service 相当于ApplicationContext.xml中的以下代码

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <!--    singleton-->
    <bean id="UserSingleton" class="com.chenxi.demo.po.User" scope="singleton">
        <property name="id" value="1"/>
        <property name="name" value="辰兮"/>
        <property name="age" value="22"/>
    </bean>

    <!--    prototype-->
    <bean id="UserPrototype" class="com.chenxi.demo.po.User" scope="prototype" >
        <property name="id" value="2"/>
        <property name="name" value="辰兮要努力"/>
        <property name="age" value="23"/>
    </bean>

</beans>

当用@service标注类中,无须在ApplicationContext.xml配置此类的javabean了。

@Autowired 自动装配

javabean定义遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量。并且要配套写上 get 和 set方法。虽然可以通过eclipse等工具来自动生成。但是还是会引起程序阅读性上的不便。用@Autowired就可以将他简化掉
可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作
1,对成员变量进行注释,其作用是替代Java代码里面的getter/setter与bean属性中的property。如果私有属性需要对外提供的话,getter应当予以保留。引入@Autowired注解
通常javabean中定义一个成员变量,需要getter/setter,如下

public class Users {
    private String username;
    public Users(){}
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }

然而用@Autowired 修饰时,即可替代getter/setter,如下

  • 在applicationContext.xml中加入:
将上述代码修改成
public class Users {
   @Autowired
    private String username;
    public Users(){}
       }

简化版去掉了get和set方法了
2,对构造函数进行注解,如果构造函数有两个入参,分别是 bean1 和 bean2,@Autowired 将分别寻找和它们类型匹配的 Bean,将它们作为 CountryService (Bean1 bean1 ,Bean2 bean2) 的入参来创建 CountryService Bean

后续用到继续补充
@Override
检查被@Override注解的方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误
示例:

public class Annotation1 extends Object{
@Override
public String toString1(){
return"我是重新定义过的toString方法";
}
}

Object类中要有toString1()方法,且使用了@Override(重写)注解,方法名、方法参数必须得和父类保持一致,否则会报错。
如果不加@Override(重写)注解,则正常编译
@Data注解
自动生成getter、setter、equals、hashCode和toString等等
示例:

private String yhz;
 
    public String getYhz() {
        return yhz;
    }
 
    public void setYhz(String yhz) {
        this.yhz = yhz;
    }

使用注解后

@Data
public class Class {
    private String yhz;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值