Java之@Component注解

开发中难免会遇到这个这个注解@Component

@controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层

@service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理

@repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
.

@component    (把普通pojo实例化到spring容器中)

在自动扫描此类的时候,类名转化为spring bean,即相当<bean id="" class="" />中的id。id由类名而来,id遵从:不指定bean的名称,默认为类名首字母小写其它不变,之后赋给id

一旦使用关于Spring的注解出现在类里,例如我在实现类中用到了@Autowired注解,被注解的这个类是从Spring容器中取出来的,那调用的实现类也需要被Spring容器管理,加上@Component


 

 

 

个性签名:一个人在年轻的时候浪费自己的才华与天赋是一件非常可惜的事情

     如果觉得这篇文章对你有小小的帮助的话,记得在右下角“点赞”~“评论”  “收藏”哦,博主在此感谢!

 

万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!   

需要注入的类 ``` @Component public class WXConfig implements com.github.wxpay.sdk.WXPayConfig { /** * 服务器地址 */ @Value("${weChat.domain}") private String domain; /** * 商户Id */ @Value("${weChat.mchId}") private String mchId; /** * 支付key */ @Value("${weChat.key}") private String key; /** * appid */ @Value("${weChat.appId}") private String appId; /** * appSecret */ @Value("${weChat.appSecret}") private String appSecret; @Override public String getAppID() { return appId; } @Override public String getMchID() { return mchId; } @Override public String getKey() { return key; } @Override public InputStream getCertStream() { return null; } /** * 连接超时时间 * * @return */ @Override public int getHttpConnectTimeoutMs() { return 10 * 1000; } /** * 读取超时时间 * * @return */ @Override public int getHttpReadTimeoutMs() { return 10 * 1000; } public String getMchId() { return mchId; } public String getAppSecret() { return appSecret; } public String getGrantType() { return "authorization_code"; } /** * 回调地址 */ public String getNotifyURL() { return this.domain + "/order/wxPayUnifiedNotify"; } } ``` 调用的类 ``` /** * 微信相关 * * @author tangchao */ @Component public class WxUtil { @Autowired private WXConfig wxConfig; private final Logger LOG = LoggerFactory.getLogger(this.getClass()); /** * 用户登录 * * @param code 前端登录code * @param encryptedData 包括敏感数据在内的完整用户信息的加密数据 * @param iv 加密算法的初始向量 * @return 返回用户信息 nickName,avatarUrl,gender,unionid,city,province,country,openid * @throws Exception */ public JSONObject loginByWeixin(String code, String encryptedData, String iv) throws Exception { WxUtil wxUtil = new WxUtil(); //根据code去调用接口获取用户openid和session_key JSONObject json = wxUtil.getSessionKeyAndOpenid(code); System.out.println("返回过来的json数据:" + json.toString()); //会话秘钥 String sessionkey = json.get("session_key").toString(); //用户唯一标识 String openid = json.get("openid").toString(); //拿到用户session_key和用户敏感数据进行解密,拿到用户信息。 String decrypts = wxUtil.decrypt(encryptedData, sessionkey, iv, "utf-8"); JSONObject jsons = JSONObject.parseObject(decrypts); jsons.put("openid", openid); return jsons; } } ``` wxConfig报空指针,为什么?
©️2020 CSDN 皮肤主题: 点我我会动 设计师:上身试试 返回首页