中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

廣州網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣怎么網(wǎng)站推廣

廣州網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣,怎么網(wǎng)站推廣,廈門做網(wǎng)站軟件,酒泉如何做百度的網(wǎng)站2023.11.11 注解的存在主要是為了簡化XML的配置。Spring6倡導全注解開發(fā)。 負責聲明Bean的注解,常見的包括四個: ComponentControllerServiceRepository 通過源碼可以發(fā)現(xiàn),Controller、Service、Repository這三個注解都是Component注解的別名…

2023.11.11

????????注解的存在主要是為了簡化XML的配置。Spring6倡導全注解開發(fā)。

????????負責聲明Bean的注解,常見的包括四個:

  • @Component
  • @Controller
  • @Service
  • @Repository

????????通過源碼可以發(fā)現(xiàn),@Controller、@Service、@Repository這三個注解都是@Component注解的別名。也就是說:這四個注解的功能都一樣。用哪個都可以。

只是為了增強程序的可讀性,建議:

  • 控制器類上使用:Controller
  • service類上使用:Service
  • dao類上使用:Repository

他們都是只有一個value屬性。value屬性用來指定bean的id,也就是bean的名字。

Spring注解的簡單使用

配好相關(guān)環(huán)境之后,在Bean類上使用注解:

package spring;import org.springframework.stereotype.Component;@Component(value = "userBean")
public class User {
}

編寫測試程序:

package test;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import spring.User;public class IocAnnotationTest {@Testpublic void testBeanComponent(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");User userBean = applicationContext.getBean("userBean", User.class);System.out.println(userBean);}
}

運行結(jié)果:

ps:如果注解的屬性名是value,那么value是可以省略的。

ps:如果把value屬性徹底去掉,spring會被Bean自動取名,并且默認名字是:Bean類名首字母小寫。

負責注入的注解

????????@Component @Controller @Service @Repository 這四個注解是用來聲明Bean的,聲明后這些Bean將被實例化。接下來看看如何給Bean的屬性賦值。給Bean屬性賦值需要用到這些注解:

  • @Value
  • @Autowired
  • @Qualifier
  • @Resource

@Value:

當屬性的類型是簡單類型時,可以使用@Value注解進行注入。

使用@Value注解修改bean代碼:

package spring;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component(value = "userBean")
public class User {@Value("jay")private String name;@Value("23")private int age;@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +'}';}
}

運行測試程序,結(jié)果如下:

????????通過以上代碼可以發(fā)現(xiàn),我們并沒有給屬性提供setter方法,但仍然可以完成屬性賦值。如果提供setter方法,并且在setter方法上添加@Value注解,也可以完成注入,這里就不測試了。為了簡化代碼,以后我們一般不提供setter方法,直接在屬性上使用@Value注解完成屬性賦值。

@Autowired與@Qualifier:

????????@Autowired注解可以用來注入非簡單類型。單獨使用@Autowired注解,默認根據(jù)類型裝配。(默認是byType)。

? ? ? ? 通過源碼得知,該注解可以標注在:構(gòu)造方法上、方法上、形參上、屬性上、注解上。

????????該注解還有一個required屬性,默認值是true,表示在注入的時候要求被注入的Bean必須是存在的,如果不存在則報錯。

????????@Autowired注解默認根據(jù)類型注入。如果要根據(jù)名稱注入的話,需要配合@Qualifier注解一起使用。

@Resource

@Resource注解也可以完成非簡單類型注入,它和@Autowired注解有什么區(qū)別?

  • @Resource注解是JDK擴展包中的,也就是說屬于JDK的一部分。所以該注解是標準注解,更加具有通用性。(JSR-250標準中制定的注解類型。JSR是Java規(guī)范提案。)
  • @Autowired注解是Spring框架自己的。
  • @Resource注解默認根據(jù)名稱裝配byName,未指定name時,使用屬性名作為name。通過name找不到的話會自動啟動通過類型byType裝配。
  • @Autowired注解默認根據(jù)類型裝配byType,如果想根據(jù)名稱裝配,需要配合@Qualifier注解一起用。
  • @Resource注解用在屬性上、setter方法上。
  • @Autowired注解用在屬性上、setter方法上、構(gòu)造方法上、構(gòu)造方法參數(shù)上。

下面使用代碼簡單使用一下這個注解:

編寫接口:

package dao;public interface UserDao {void insert();
}

實現(xiàn)該接口的類:

package dao.impl;import dao.UserDao;
import org.springframework.stereotype.Repository;@Repository("userDaoImplForMysql")
public class UserDaoImplForMysql implements UserDao {@Overridepublic void insert() {System.out.println("Mysql數(shù)據(jù)庫正在插入數(shù)據(jù)");}
}

service類:

package service;import dao.UserDao;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;@Service("userService") //納入容器管理
public class UserService {@Resource(name = "userDaoImplForMysql")private UserDao userDao;public void save(){userDao.insert();}
}

測試程序:

    @Testpublic void testResource(){ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");UserService userService = applicationContext.getBean("userService", UserService.class);userService.save();}

運行結(jié)果:

http://www.risenshineclean.com/news/55429.html

相關(guān)文章:

  • 北京網(wǎng)站托管seo關(guān)鍵詞排名優(yōu)化軟件怎么選
  • 永州網(wǎng)站開發(fā)商品seo優(yōu)化是什么意思
  • 網(wǎng)站案例欣賞seo機構(gòu)
  • 同性男做性視頻網(wǎng)站seo小白入門教學
  • 醫(yī)院做網(wǎng)站定位上海seo網(wǎng)站策劃
  • 做平臺網(wǎng)站一般有php還是js脫發(fā)嚴重是什么原因引起的
  • 網(wǎng)站正在建設(shè)中代碼百度賬號中心官網(wǎng)
  • 0511城市建設(shè)網(wǎng)站棚戶區(qū)改造seo關(guān)鍵詞推廣案例
  • 文本怎樣做閱讀鏈接網(wǎng)站自媒體怎么做
  • 外掛網(wǎng)站怎么做廣告代理商
  • 營銷網(wǎng)站建設(shè)平臺淘寶店鋪推廣
  • 網(wǎng)站優(yōu)化都是怎么做的百度信息流效果怎么樣
  • 門戶網(wǎng)站 模板之家網(wǎng)站推廣方式有哪些
  • 利用網(wǎng)站空間做代理seo推廣一年要多少錢
  • 做商務(wù)網(wǎng)站要多少錢html網(wǎng)頁制作軟件有哪些
  • 自己做的網(wǎng)站很卡網(wǎng)絡(luò)營銷方案設(shè)計范文
  • 桂林漓江門票多少錢一張seo軟件推廣哪個好
  • wordpress如何修改評論長沙seo關(guān)鍵詞
  • wordpress做自建站app接入廣告變現(xiàn)
  • 在wordpress主題后臺安裝了多說插件但網(wǎng)站上顯示不出評論模塊競價廣告是什么意思
  • 滄州做網(wǎng)站的公司營銷方案包括哪些內(nèi)容
  • 對網(wǎng)站建設(shè)服務(wù)公司的看法新東方烹飪學校學費一年多少錢
  • 各種瀏覽器網(wǎng)站大全淘寶新店怎么快速做起來
  • 互聯(lián)網(wǎng)網(wǎng)站建設(shè)公司做個電商平臺要多少錢
  • APP開發(fā)網(wǎng)站建設(shè)哪家好免費網(wǎng)站統(tǒng)計代碼
  • 深圳wap網(wǎng)站建設(shè)公司關(guān)鍵詞優(yōu)化公司推薦
  • 怎么做色情網(wǎng)站賺錢品牌推廣策劃書范文案例
  • 建設(shè)政府信息資源共享網(wǎng)站如何查詢百度收錄情況
  • 中山企業(yè)網(wǎng)站制作寧德市委書記
  • 聊城做網(wǎng)站的公司信息市場調(diào)研報告怎么寫的