[ばね]宣言(Annotation)
ソース:https://codevang.tistory.com/256
@Autowired
タイプ->名前->@Qualifier->失敗
Springフレームワークでサポートされている操作.
スプリングコンテナ内の依存オブジェクトを注入すると、タイプを検索して接続します(依存オブジェクトを注入します).
@Autowired
private SqlSessionTemplate sql;
// 변수타입(SqlSessionTemplate) 에 따라 Spring 컨테이너가 알아서 root-context.xml 에 생성된 org.mybatis.spring.SqlSessionTemplate 의 bean 을 변수에 주입시켜준다.
*/
@Inject
タイプ->@Qualifier->名前->失敗
JAvaがサポートする宣言.Javaxライブラリ依存性を追加する必要があります.
同じタイプのbeanオブジェクトが複数ある場合は、名前を使用して次のオブジェクトを検索します.ない場合は例外が発生します.複数のサブクラスの1つのbeanオブジェクトを親クラスタイプに上書きすると、このような状況が発生する可能性があります.したがって,@Name Arnovationを使用して正しいbean IDを指定することが望ましい.
@Inject
@Named("sqlSessionFactory")
private SqlSessionFactory sqlFactory;
@Resource
名前(bean id)->タイプ->@Qualifier->失敗
フィールド名または作成者パラメータ変数の名前をbeanオブジェクトのIDにマッピングすることで、まずオブジェクトを検索します.
マッピングされたIDがない場合は、タイプを検索して検索します.ただし、同じタイプがない場合は例外が発生します.
タイプや名前が常に正しければ良いのですが、overridingを使用するとどちらの場合も異なるので、常に名前を指定しておくと、後で使用したほうがよく、安定します.
@Resource(name="SqlSessionTemplate")
private SqlSessionTemplate sqlsession;
パラメータマッピング
@RequestParam
パラメータをViewで受信します.
@RequestParam("name",required=",defaultValue=")データ型データ名
requiredのデフォルト値はtrueです.falseとして指定せずに空の値を送信すると、エラーが発生します.
defaultValueに値がない場合は、設定した値にマップされます.
1:1にマッピング
@Controller
public class boardController{
@RequestMapping("/boardContent")
public String getBoardContent(@RequestParam("bno") int bno, Model model){
BoardVO boardVO = boardService.getBoardContent(bno);
model.addAttribute("boardVO", boardVO);
return "/boardContent";
}
}
@ModelAttribute
要求された値をオブジェクトにマッピングします.
@Controller
public class boardController{
@RequestMapping("")
public String getMemberInfo(@ModelAttribute MemberVO memberVO ){
sysout(memberVO.getName());
sysout(memberVO.getId());
return "";
}
}
名前とIDを変数とするMemberVOオブジェクトが存在する場合、そのオブジェクトセットにバインドされます.(Setterが必要)フォームタグのname部分とオブジェクトの変数名は同じである必要があります.
@RestController
@Controllerと@ResponseBodyを組み合わせます.
クラスの上部に@RestControlを宣言する場合は、各メソッドに@ResponseBodyを追加する必要はありません.
@RequestBody
クライアントがJSONからサーバにデータを送信すると、サーバはHTTPリクエスト本文(body)の値をjavaオブジェクトに変換し、@requestBodyを受信して格納します.
AJAX에서 아래와 같이 설정해야함.
data : JSON.stringify(object);
contentType: 'json'
public String updateReply(@RequestBody ReplyVO replyVO)
@ResponseBody
逆に、JavaオブジェクトをHTTP応答本文(body)オブジェクトに変換し、サーバからクライアントに応答データを転送する役割を果たす.
VOのPropertyとJSONオブジェクトのProperty名が一致し、getter/setterが必要です.
クラスの上部に@RestControlがある場合は、メソッドに貼り付ける必要はありません.
@Component
XMLで空を作成せずにクラス名の前に@Component宣言を書くと、クラスはbeanとして登録されます.ただし、基本ジェネレータは存在する必要があります.
(ない場合はservlet-context.xmlで直接設定する必要があります)
はい.
<beans:bean id="id명" class="클래스명(풀네임)">
<beans:constructor-arg>
<beans:value>초기화할 파라미터</beans:value>
</beans:constructor-arg>
</beans:bean>
Reference
この問題について([ばね]宣言(Annotation)), 我々は、より多くの情報をここで見つけました https://velog.io/@tjddnths0223/애노테이션テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol